Quiero correr:
python somescript.py somecommand
Pero, cuando ejecuto esto, necesito PYTHONPATH
incluir un directorio determinado. No puedo simplemente agregarlo a mis variables de entorno porque el directorio al que quiero agregar cambia según el proyecto que estoy ejecutando. ¿Hay alguna forma de alterar PYTHONPATH
mientras se ejecuta un script? Nota: Ni siquiera tengo una PYTHONPATH
variable, por lo que no necesito preocuparme por agregarla en lugar de anularla durante la ejecución de este script.
python
pythonpath
orokusaki
fuente
fuente
PYTHONPATH=/foo/bar python somescript.py somecommand
python -c"import sys;sys.path.append('/my/dir')"
y luegopython myscript.py mycommand
, pero obviamente no comparte el camino desde la primera sesión de intérprete con la siguiente. Ah, acabo de ver su siguiente comentario, lo intento ahora ... No funcionó en WinXP.unset
comando de variable de entorno en Windows. En su lugar, agregue unsetlocal
después de la inicialecho off
y luegoendlocal
se producirá un implícito cuando finalice el script .bat (yPYTHONPATH
se restaurará a su valor anterior).PYTHONPATH
, es posible que desee usarset PYTHONPATH=%PYTHONPATH%;%1
.import sys sys.path.append('your certain directory')
Básicamente, sys.path es una lista con todas las rutas de búsqueda de módulos de Python. Lo inicializa el intérprete. El contenido de PYTHONPATH se agrega automáticamente al final de esa lista.
fuente
sys.path.append(r'D:\PyCharmProjects\cheese_shoppe')
ejemplo en Windows.Si está ejecutando el comando desde un shell compatible con POSIX, como
bash
, puede configurar la variable de entorno de esta manera:PYTHONPATH="/path/to" python somescript.py somecommand
Si todo está en una línea, el valor del entorno PYTHONPATH se aplica solo a ese comando.
$ echo $PYTHONPATH $ python -c 'import sys;print("/tmp/pydir" in sys.path)' False $ PYTHONPATH=/tmp/pydir python -c 'import sys;print("/tmp/pydir" in sys.path)' True $ echo $PYTHONPATH
fuente
python -c "import sys; sys.path.insert(0,'my/path'); import mymodule"
no funcionó.Puede intentar esto para ejecutar una función dentro de su script
python -c "import sys; sys.path.append('/your/script/path'); import yourscript; yourscript.yourfunction()"
fuente
Esto es para Windows:
Por ejemplo, tengo una carpeta llamada "mygrapher" en mi escritorio. En el interior, hay carpetas llamadas "cálculo" y "gráficos" que contienen archivos de Python que necesita mi archivo principal "grapherMain.py". Además, "grapherMain.py" se almacena en "gráficos". Para ejecutar todo sin mover archivos, puedo hacer un script por lotes. Llamemos a este archivo por lotes "rungraph.bat".
@ECHO OFF setlocal set PYTHONPATH=%cd%\grapher;%cd%\calculation python %cd%\grapher\grapherMain.py endlocal
Este script se encuentra en "mygrapher". Para ejecutar cosas, entraría en mi símbolo del sistema y luego haría:
>cd Desktop\mygrapher (this navigates into the "mygrapher" folder) >rungraph.bat (this executes the batch file)
fuente