从conda为pip3创建requirements.txt

问题描述 投票:7回答:1

嗨,我通常使用conda来管理我的环境,但现在我的项目需要比我的笔记本电脑更多的马力。所以我正在尝试使用我的大学工作站,这些工作站有新的英特尔至强。但我没有管理员权限,工作站没有conda所以我被迫使用virtualenv和pip3。

如何从conda生成requirements.txt,它将与pip3venv一起使用?

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
python-3.x pip conda
1个回答
5
投票

在讨论之后,我想提一下,你实际上可以看到pipconda角色的分离。

pip是一个标准的包管理器,它做了一件事并做得很好。 requirements.txt可以在一个环境中生成,并由pip在新环境中安装。

现在有conda输出:你正确地捕获他们的评论,其中说'我们生成了这个库的列表以与conda一起工作'。请注意,python本身位于conda列表中,并且(正确地)不在requirements.txt中。 conda复制自己的安装,这就是为什么它的库列表更长,并且有自己的python。

pip生成一个安装在标准库之上的软件包列表,以使您编写的软件包正常工作。希望有助于区分这两者。

此外,pipenv是一个新工具,可以为您执行虚拟环境和包管理。

© www.soinside.com 2019 - 2024. All rights reserved.