Как вы устанавливаете свой pythonpath в уже созданном virtualenv?

Как вы устанавливаете свой pythonpath в уже созданном virtualenv?

21.01.2011 12:24:23 Просмотров 20 Источник

Какой файл я редактирую и как? Я создал виртуальную среду.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv#comment22516423_4757178
убедитесь, что он указывает на нужные каталоги. Если у вас его еще нет, нажмите кнопку Создать и создайте его.
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv#comment22516411_4757178
Используйте команду add2virtualenv.

Ответы - Как вы устанавливаете свой pythonpath в уже созданном virtualenv? / How do you set your pythonpath in an already-created virtualenv?

Ravikiran

21.01.2011 12:55:08

Это уже ответ здесь - > > является ли моя виртуальная среда (python) причиной разрыва моего PYTHONPATH?

UNIX / LINUX

Добавить "экспорт PYTHONPATH=/usr/местные/библиотека/вместо python2.0" это в ~/.bashrc файл и его источник, введя "source ~/.bashrc "или". ~/.bashrc следующее".

WINDOWS XP

1) Перейдите на панель управления 2) система двойного щелчка 3) перейдите на вкладку Дополнительно 4) Нажмите на переменные окружения

В окне системные переменные проверьте, есть ли у вас переменная с именем PYTHONPATH. Если у вас уже есть один, убедитесь, что он указывает на правильные каталоги. Если у вас его еще нет, нажмите кнопку Создать и создайте его.

код Python

Кроме того, вы также можете сделать ниже вашего кода:-

import sys
sys.path.append("/home/me/mypy") 
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4757403#comment11383587_4757403
-1: Это относится к PYTHONPATH пользователя, а не к PYTHONPATH virtualenv.
Является ответом!
mdeous

21.01.2011 02:39:06

Правка #2

Правильный ответ @arogachev один.


Если вы хотите изменить PYTHONPATH, используемый в virtualenv, вы можете добавить следующую строку в bin/activate:

export PYTHONPATH="/the/path/you/want"

Таким образом, новый PYTHONPATHбудет устанавливаться каждый раз, когда вы используете этот virtualenv.

Редактировать: (чтобы ответить на комментарий @ RamRachum)

Чтобы восстановить его первоначальное значение при deactivate, вы можете добавить

export OLD_PYTHONPATH="$PYTHONPATH"

перед ранее упомянутой строкой и добавьте следующую строку в скрипт bin/postdeactivate.

export PYTHONPATH="$OLD_PYTHONPATH"
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment11297791_4758351
Будет ли он также удален при deactivate?
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment30062628_4758351
Таким образом, это означает, что вновь созданный виртуальный enviromnent имеет по умолчанию PYTHONPATH(глобальный) вместо virtualenv local path?
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment30090454_4758351
@tkoomzaaskz PYTHONPATHпо умолчанию пуст, это просто способ расширения путей поиска, доступных в sys.path. Этот метод предназначен только для того, чтобы он был изменен на то время, пока вы находитесь в virtualenv.
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment32135253_4758351
Этот подход требует VirtualEnvWrapper
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment32781804_4758351
Если вы добавите это к вашему ~/.виртуальное окружение/name_of_env/bin/активировать файл, загрузит pythonpath внутри виртуальное окружение каждый раз, когда вы загружаете его.
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment41288507_4758351
Это сработало очень хорошо для меня, я не использую virtualenvwrapper. Только обратите внимание, что у меня не было такого скрипта bin/postdeactivate, rathere activate имел функцию deactivate. Таким образом, строка кода должна быть помещена туда, будучи осторожной, чтобы обернуть ее в Оператор if, как и остальные операции в функции.
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment70824182_4758351
Я обнаружил , что, чтобы заставить это работать с pyenv, мне нужно было изменить ~/.pyenv/plugins/pyenv-virtualenv/bin/pyenv-sh-activate и ~/.pyenv/plugins/pyenv-virtualenv/bin/pyenv-sh-deactivate, а не активировать и деактивировать скрипты virtualenv. (которые называются для всех virtualenvs, а не только для конкретного)
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment80203162_4758351
Кажется странным, что virtualenv не делает этого по умолчанию.
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment89741325_4758351
Исправление одной строки: export PYTHONPATH=" / The / path / you / want"
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment92602179_4758351
Расширять @Никколо комментарий (для нубов как я), if инструкция внутри deactivate можно if true; then... fi
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/4758351#comment95456443_4758351
Правка №2-это ложь! :) Правильный ответ-это @ arjen-p-de-vries's one
tjb

31.07.2013 11:17:49

Комментарий @s29 должен быть ответом:

Один из способов добавить каталог в виртуальную среду-установить virtualenvwrapper (что полезно для многих вещей), а затем сделать

mkvirtualenv myenv
workon myenv
add2virtualenv . #for current directory
add2virtualenv ~/my/path

Если вы хотите удалить эти пути, отредактируйте файл myenvhomedir/lib/python2.7/site-packages/_virtualenv_path_extensions.pth

Документацию по virtualenvwrapper можно найти по адресу http://virtualenvwrapper.readthedocs.org/en/latest/

Конкретную документацию по этой функции можно найти по адресу http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html?highlight=add2virtualenv

https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/17963979#comment49658244_17963979
чтобы удалить: add2virtualenv -d
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/17963979#comment92652247_17963979
просто связал этот ответ в моем, так как он намного лучше
André Laszlo

11.11.2014 10:55:53

Я изменил свой сценарий активации, чтобы создать исходный файл .virtualenvrc, если он существует в текущем каталоге, и сохранить/восстановить PYTHONPATHпри активации/деактивации.

Вы можете найти исправленный activate:

.virtualenvrc
Siyaram Malav

12.01.2016 10:10:29

  1. Инициализировать виртуальное окружение
cd venv

source bin/activate
  1. Просто установите или измените свой путь python, введя следующую команду:
export PYTHONPATH='/home/django/srmvenv/lib/python3.4'
  1. для проверки Python path введите в python:
   python

      \>\> import sys

      \>\> sys.path

Arjen P. De Vries

08.11.2017 07:25:55

Вы можете создать.pth-файл, содержащий каталог для поиска, и поместите его в каталог site-packagespackages. Например.:

cd $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
echo /some/library/path > some-library.pth

Эффект тот же, что и при добавлении /some/library/pathв sys.path, и остаются локальными для установки virtualenv.

https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/47184788#comment83844094_47184788
Мне очень нравится этот подход; он не так непостоянен, как добавление строк для активации / деактивации, и не требует использования virtualenvwrapper. Если вы предпочитаете не вызывать python для поиска site-packages dir, он находится в довольно предсказуемом пути $VIRTUALENV_ROOT/lib/pythonX.Y/site-packages. Документы на месте .файлы pth: docs.python.org/3.6/library/site.html
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/47184788#comment96039974_47184788
Я не хотел вводить абсолютный путь, потому что мои рабочие области перемещаются вокруг моей файловой системы. И, мой путь проекта имеет пробелы. Итак, я набрал немного измененную команду: pushd "$(venv/bin/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")" ...path/to/project/venv/lib/python3.7/site-packages ...path/to/project echo ../../../../src > my_project.pth popd потом я отключила мое виртуальное окружение, и расконсервировали. Теперь я мог запускать код проекта, который требовал знать, где находится мой каталог проекта.
https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/47184788#comment96790866_47184788
Это правильный ответ. Изменение скрипта, предоставленного поставщиком (/bin/activate), является ошибкой, а установка сторонних инструментов уступает использованию встроенного способа достижения того же.
Закрыть X