Мой проект на python выполняется в виртуальной среде conda. Я устанавливаю пакеты в среде с conda install
всякий раз, когда этот пакет доступен для установки таким образом, в противном случае я устанавливаю его с pip install
.
Чтобы упростить установку проекта для других разработчиков, я экспортирую список пакетов, которые используются в среде conda, в файл: conda env export > conda_environment_export.yml
.
Однако со временем экспорт пакетов больше не содержит пакетов, установленных pip.
Что я могу сделать, чтобы пакеты pip снова появлялись в экспорте?
Мой файл экспорта conda, каким он был несколько недель назад:
name: sensor_gateway
channels:
- defaults
dependencies:
- aiohttp=2.3.9=py36_0
- async-timeout=2.0.0=py36hc3e01a3_0
- certifi=2018.1.18=py36_0
- chardet=3.0.4=py36h420ce6e_1
- jinja2=2.10=py36h292fed1_0
- markupsafe=1.0=py36h0e26971_1
- multidict=3.3.2=py36h72bac45_0
- pip=9.0.1=py36h226ae91_4
- pymysql=0.7.11=py36hf59f3ba_0
- python=3.6.4=h6538335_1
- pytz=2018.3=py36_0
- setuptools=38.4.0=py36_0
- sqlalchemy=1.2.1=py36hfa6e2cd_0
- vc=14=h0510ff6_3
- vs2015_runtime=14.0.25123=3
- wheel=0.30.0=py36h6c3ec14_1
- wincertstore=0.2=py36h7fe50ca_0
- yarl=0.14.2=py36h27d1bf2_0
- pip:
- aiohttp-jinja2==0.16.0
- aiomysql==0.0.12
- attrs==17.4.0
- idna==2.6
- idna-ssl==1.0.0
- python-mimeparse==1.6.0
prefix: C:\ProgramData\Anaconda3\envs\sensor_gateway
Конда экспорт сейчас:
name: sensor_gateway
channels:
- defaults
dependencies:
- aiohttp=2.3.9=py36_0
- async-timeout=2.0.0=py36hc3e01a3_0
- certifi=2018.4.16=py36_0
- chardet=3.0.4=py36h420ce6e_1
- icc_rt=2017.0.4=h97af966_0
- intel-openmp=2018.0.0=8
- jinja2=2.10=py36h292fed1_0
- markupsafe=1.0=py36h0e26971_1
- mkl=2018.0.2=1
- mkl_fft=1.0.1=py36h452e1ab_0
- mkl_random=1.0.1=py36h9258bd6_0
- multidict=3.3.2=py36h72bac45_0
- numpy=1.14.2=py36h5c71026_1
- pip=9.0.1=py36h226ae91_4
- pymysql=0.7.11=py36hf59f3ba_0
- python=3.6.4=h6538335_1
- pytz=2018.3=py36_0
- setuptools=38.4.0=py36_0
- simplejson=3.14.0=py36hfa6e2cd_0
- sqlalchemy=1.2.1=py36hfa6e2cd_0
- vc=14=h0510ff6_3
- vs2015_runtime=14.0.25123=3
- wheel=0.30.0=py36h6c3ec14_1
- wincertstore=0.2=py36h7fe50ca_0
- yarl=0.14.2=py36h27d1bf2_0
prefix: C:\ProgramData\Anaconda3\envs\sensor_gateway
Я подозреваю, что обновление версии conda (4.4.10-py36_0
-> 4.5.2-py36_0
) могло вызвать эту проблему в этом проекте. В другом проекте у меня та же проблема, но там я обновил pip (9.0.1-py36h226ae91_4
-> 10.0.1-py36_0
). Даже после возвращения к пункту 9.0.1 проблема остается. Правильно ли мое подозрение? И что я могу сделать, чтобы исправить это снова?
UPDATE:
Единственный предложенный ответ сейчас ссылается на этот вопрос и, похоже, он не решает мою проблему:
1. На командном терминале Windows, открытом как администратор:
Вывод
where pip
(where
в качестве команды, эквивалентной windows для which
в unix / linux):
C:\ProgramData\Anaconda3\Scripts\pip.exe
C:\Users\Sander\AppData\Local\Programs\Python\Python36\Scripts\pip.exe
pip freeze
вывод:
Перечисляет все пакеты, которые я когда-либо устанавливал на моем «нормальном» питоне (= все, что установлено по умолчанию, не внутри каких-либо выделенных виртуальных сред). Список пакетов слишком длинный для включения.
2. На командном терминале Windows, открытом с правами администратора, и после выполнения activate sensor_gateway
:
where pip
выход:
C:\ProgramData\Anaconda3\envs\sensor_gateway\Scripts\pip.exe
C:\ProgramData\Anaconda3\Scripts\pip.exe
C:\Users\Sander\AppData\Local\Programs\Python\Python36\Scripts\pip.exe
pip freeze
вывод:
перечисляет все пакеты, установленные с pip в моей среде правильно.
Таким образом, кажется, что когда моя виртуальная среда активирована, в этой среде установлен пип, и должен быть пип, который возвращает список установленных пакетов при запросе, а не установка другого пипа , поскольку список пакетов pip в среде корректен.