Python-добавить PYTHONPATH во время запуска модуля командной строки
Я хочу работать:
python somescript.py somecommand
но, когда я запускаю это мне нужно PYTHONPATH
для включения определенного каталога. Я не могу просто добавить его в переменные среды, потому что каталог, который я хочу добавить, изменяется в зависимости от того, какой проект я запускаю. Есть ли способ изменить PYTHONPATH
во время работы скрипта? Примечание: у меня даже нет PYTHONPATH
переменная, поэтому мне не нужно беспокоиться о добавлении к ней vs переопределении ее во время выполнения этого скрипта.
5 ответов:
Для Mac / Linux;
PYTHONPATH=/foo/bar/baz python somescript.py somecommand
для Windows, установите обертку
pythonpath.bat
;@ECHO OFF setlocal set PYTHONPATH=%1 python %2 %3 endlocal
и звонок
pythonpath.bat
script file like;pythonpath.bat /foo/bar/baz somescript.py somecommand
import sys sys.path.append('your certain directory')
в основном sys.path-это список со всеми путями поиска для модулей python. Он инициализируется интерпретатором. Содержимое PYTHONPATH автоматически добавляется в конец этого списка.
Если вы выполняете команду из POSIX-совместимой оболочки, например
bash
, вы можете установить переменную окружения такой:PYTHONPATH="/path/to" python somescript.py somecommand
Если все это находится в одной строке, значение среды PYTHONPATH применяется только к этой команде.
$ 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
вы можете попробовать это, чтобы выполнить функцию внутри вашего скрипта
python -c "import sys; sys.path.append('/your/script/path'); import yourscript; yourscript.yourfunction()"
Это для windows:
например, у меня есть папка с именем "mygrapher" на моем рабочем столе. Внутри есть папки под названием "расчет" и "графика", которые содержат файлы Python, которые мой основной файл "grapherMain.py-потребности. Кроме того, "grapherMain.py" хранится в "графике". Чтобы запустить все без перемещения файлов, я могу сделать пакетный скрипт. Назовем этот пакетный файл " rungraph.летучая мышь."
@ECHO OFF setlocal set PYTHONPATH=%cd%\grapher;%cd%\calculation python %cd%\grapher\grapherMain.py endlocal
этот скрипт находится в "mygrapher". Чтобы управлять вещами, я бы вошел в свой командная строка затем выполните:
>cd Desktop\mygrapher (this navigates into the "mygrapher" folder) >rungraph.bat (this executes the batch file)