【发布时间】:2018-11-19 12:43:58
【问题描述】:
您好,我通常使用 conda 来管理我的环境,但现在我的项目需要比我的笔记本电脑更多的功能。所以我正在尝试使用我大学的工作站,这些工作站配备了新的英特尔至强。但我没有管理员权限,工作站也没有 conda,所以我不得不使用 virtualenv 和 pip3。
如何从 conda 生成一个可以与 pip3 和 venv 一起使用的 requirements.txt?
conda list -e > requirements.txt
不生成兼容文件:
= is not a valid operator. Did you mean == ?
conda 输出为:
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: osx-64
certifi=2016.2.28=py36_0
cycler=0.10.0=py36_0
freetype=2.5.5=2
icu=54.1=0
libpng=1.6.30=1
matplotlib=2.0.2=np113py36_0
mkl=2017.0.3=0
numpy=1.13.1=py36_0
openssl=1.0.2l=0
pip=9.0.1=py36_1
pyparsing=2.2.0=py36_0
pyqt=5.6.0=py36_2
python=3.6.2=0
python-dateutil=2.6.1=py36_0
pytz=2017.2=py36_0
qt=5.6.2=2
readline=6.2=2
scikit-learn=0.19.0=np113py36_0
scipy=0.19.1=np113py36_0
setuptools=36.4.0=py36_1
sip=4.18=py36_0
six=1.10.0=py36_0
sqlite=3.13.0=0
tk=8.5.18=0
wheel=0.29.0=py36_0
xz=5.2.3=0
zlib=1.2.11=0
我以为我会手动将所有 = 更改为 == 但 conda 输出中有两个 =。改哪一个?肯定有更简单的方法吗?
编辑:pip freeze > requirements.txt 给出:
certifi==2016.2.28
cycler==0.10.0
matplotlib==2.0.2
matplotlib-venn==0.11.5
numpy==1.13.1
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.2
scikit-learn==0.19.0
scipy==0.19.1
six==1.10.0
【问题讨论】:
-
你可以在你的电脑上使用'pip freeze'
-
但是输出不同,我的意思是 conda 命令的包比
pip freeze的输出多。 -
这看起来有点奇怪,但通常你可以手动编辑 rewuiremrnts.txt 作为最后的手段。 pipenv 中的另一个选项,pip 和 virtualenv 的包装器
-
不,如果它正在工作,则没有。我觉得很奇怪,这不能做。是的,人们在环境管理器之间切换可能并不常见,但仍然......需要是可以想象的。
-
我不确定,我没有看到完整的答案;从某种意义上说,您已经解释了这些工具的作用,但就我在 how 中看到的如何使用 pipenv 的 virtualenv 成功复制 conda 环境而言,没有解决方案。
标签: python-3.x pip conda