#python-3.x #pip #virtualenv
#python-3.x #зернышко #virtualenv
Вопрос:
Я хочу, чтобы зависимости для проекта были установлены в виртуальной среде. Я успешно создаю его и активирую, но все равно установка зависимостей приводит к тому, что они устанавливаются в /usr/local/bin64 вместо моего виртуального env:
[ec2-user@machine app]$ virtualenv environment created virtual environment CPython3.7.10.final.0-64 in 392ms creator CPython3Posix(dest=/home/ec2-user/app/environment, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/ec2-user/.local/share/vi rtualenv) added seed packages: pip==21.0.1, setuptools==54.1.2, wheel==0.36.2 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator [ec2-user@machine app]$ source environment/bin/activate (environment) [ec2-user@machine app]$ pip3 install -r requirements.txt Collecting anyio==3.4.0 Using cached anyio-3.4.0-py3-none-any.whl (78 kB) Collecting appdirs==1.4.4 Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB) Collecting atomicwrites==1.4.0 Using cached atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB) Collecting attrs==20.3.0 Using cached attrs-20.3.0-py2.py3-none-any.whl (49 kB) Collecting boto3==1.20.14 ...
Я нахожу, что посылки заканчиваются здесь: /usr/local/lib64/python3.7/site-packages
Но я ожидал , что они будут установлены внутри ~/app/environment
, где был создан и активирован мой виртуальный env.
Я проверил местоположение pip и pip3, кажется, правильно:
(environment) [ec2-user@machine app]$ which pip ~/app/environment/bin/pip (environment) [ec2-user@machine app]$ which pip3 ~/app/environment/bin/pip3
Что я упускаю?
Ответ №1:
Вы звоните pip3
, который находится в другой среде. Попробуй pip
. И вы можете подтвердить это с which pip
помощью .
Комментарии:
1. Я проверил, но оба, похоже, находятся в правильном месте. Смотрите обновление к ответу выше. Я повторяю установку только с помощью pip, но с тем же результатом. Одна из моих зависимостей-newrelic, и когда я ищу машину, я нахожу ее только в глобальной папке пакетов сайтов в /usr/local/lib64/python3.7/пакеты сайтов/newrelic. Есть еще какие-нибудь идеи, что может быть причиной этого?
2. Ммм, попробуй
python -m pip install ..