Sto scrivendo un test unitario che deve accedere a un file immagine che ho inserito nella directory "fixtures" proprio sotto la mia directory app django. Voglio aprire questo file immagine nel mio test utilizzando il percorso relativo, che mi richiederebbe di ottenere il percorso assoluto dell'app django. C'è un modo per ottenere il percorso assoluto dell'app django?Ottieni il percorso assoluto dell'app django
risposta
moduli Python (incluse le applicazioni Django) hanno un attributo __file__
che ti dice la posizione del proprio file __init__.py
sul filesystem, in modo
import appname
pth = os.path.dirname(appname.__file__)
dovrebbe fare quello che vuoi.
In circostanze normali, os.path.absname(appname.__path__[0])
, ma è possibile che le app cambino se vogliono importare file in modo strano.
(io faccio sempre PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
nel mio settings.py
, anche se -. Lo rende facile per le varie impostazioni che devono essere percorsi assoluti)
Normalmente, questo è ciò che aggiungo nel mio file settings.py così posso fare riferimento alla radice del progetto.
import os.path
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
Questo metodo otterrà la directory di qualsiasi file python.
Questo è intelligente, ma dà il percorso per il progetto non al app . Nel mio caso, funzionerà bene perché, nel filesystem, la mia app vive sotto il progetto, altrimenti non lo farebbe. C'è un modo in cui posso effettivamente ottenere il percorso per l'app? O è questo il più vicino che posso ottenere? – tamakisquare
È possibile utilizzarlo all'interno di un file che si trova nell'app o aggiungere il percorso all'app all'interno della cartella su PROJECT_ROOT utilizzando os.path.join() – Kekoa
. Grazie :) – tamakisquare
- 1. Django Ottieni URL assoluto
- 2. Ottieni percorso assoluto con boost :: filesystem :: percorso
- 3. Ottieni il percorso assoluto del file sul contenuto
- 4. Ottieni il nome file e l'estensione da un percorso assoluto
- 5. Ottieni il percorso assoluto alla cartella delle risorse in PhoneGap
- 6. git: Ottieni il percorso assoluto del file, relativo al repository
- 7. django ottenere il percorso assoluto di un FileField
- 8. WIN32_FIND_DATA - Prendi il percorso assoluto
- 9. Ottieni il percorso della directory del percorso file assoluto in Python
- 10. file assoluto Percorso
- 11. Percorso assoluto Hacc.
- 12. PHP include percorso assoluto
- 13. Ottenere il percorso assoluto di un file
- 14. usa il percorso assoluto o relativo?
- 15. file batch: ottenere il percorso assoluto
- 16. angolare js TemplateURL con il percorso assoluto
- 17. Bash: recupera il percorso assoluto dato relativo
- 18. Conversione percorso assoluto al relativo percorso C#
- 19. Percorso relativo al percorso assoluto in C#?
- 20. Ottenere il percorso relativo dal percorso assoluto in PHP
- 21. Come convertire il percorso assoluto nel percorso relativo in PowerShell?
- 22. Ottieni il percorso skin in Magento?
- 23. Percorso relativo al percorso assoluto in VB.NET
- 24. Percorso assoluto relativo (Eclipse, JSP)
- 25. Apache ErrorDocument con percorso assoluto
- 26. Percorso assoluto PHP in requireonce
- 27. Ritorno percorso assoluto da RouteBase.GetVirtualPath
- 28. Qual è il percorso assoluto di BASE DIR?
- 29. UIWebView baseURL e percorso assoluto
- 30. URL assoluto dal percorso relativo
Questo non è effettivamente corretto perché appname .__ path__ è lista, non una stringa. Vedi http://docs.python.org/2/tutorial/modules.html#packages-in-multiple-directories –
@GeorgeLund Hai ragione, naturalmente; sciocco da parte mia. Si potrebbe fare 'appname .__ path __ [0]', anche se sembra che sia possibile cambiarlo; si potrebbe anche usare 'os.path.dirname (appname .__ file __)', poiché '__file__' punta al file' __init __. py'. – Dougal
Puoi modificare la risposta in modo che corrisponda al tuo commento perché la risposta è ciò che la maggior parte delle persone vede prima. – Igor