您好我通常使用conda来管理我的环境,但现在我的项目需要比我的笔记本电脑更多的马力。所以我正在尝试使用我的大学工作站,这些工作站有新的英特尔至强。但我没有管理员权限,工作站没有conda所以我被迫使用virtualenv和pip3。
如何从conda生成可与requirements.txt
和pip3
配合使用的venv
?
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
答案 0 :(得分:12)
在 conda 环境中,只需调用
pip freeze
我得到了:
ipykernel @ file:///C:/ci/ipykernel_1607454116140/work/dist/ipykernel-5.3.4-py3-none-any.whl
ipython @ file:///D:/bld/ipython_1612487184680/work
...
想要的格式:
ipykernel==5.3.4
ipython==7.20.0
...
在激活的 conda 环境中,我不得不使用
pip list --format=freeze
为喜欢在虚拟环境中使用 pip 的人获取生成需求文件的正确格式。
答案 1 :(得分:3)
在讨论之后,我想提一下,您可以在行动中看到pip
和conda
角色的某些分离。
pip
是一个标准的包管理器,它做了一件事并做得很好。 requirements.txt
可以在一个环境中生成,并由pip
在新环境中安装。
现在有conda
输出:您正确地捕获了他们的评论,其中说'我们生成了这个库列表以使用conda'。请注意,python本身位于conda列表中,并且(正确地)不在requirements.txt
中。 conda
复制自己的安装,这就是为什么它的库列表更长,并且有自己的python。
pip
生成一个安装在标准库之上的软件包列表,以使您编写的软件包正常工作。希望有助于区分这两者。
此外,pipenv是一个较新的工具,可以为您执行虚拟环境和包管理。
答案 2 :(得分:3)
如顶部的注释所示,
的输出 conda list -e > requirements.txt
可用于通过
创建一个conda
虚拟环境
conda create --name <env> --file requirements.txt
但此输出的格式不适用于pip
。
如果您要使用一个文件来创建pip
虚拟环境(即正确格式的requirements.txt
)
您可以在pip
环境中安装conda
,使用点子创建requirements.txt
。
conda activate <env>
conda install pip
pip freeze > requirements.txt
然后使用生成的requirements.txt
创建一个pip
虚拟环境:
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
当我对此进行测试时,软件包在输出中并不完全相同(pip
包含的软件包较少),但是足以建立一个功能环境。
答案 3 :(得分:1)
如果有人希望从conda中的现有项目中生成requirements.txt,请使用以下内容
转到您的项目环境conda activate <env_name>
conda list
列出用于环境的软件包
conda list -e > requirements.txt
将有关软件包的所有信息保存到文件夹中
conda env export > <env_name>.yml
pip freeze
答案 4 :(得分:1)
激活conda env
conda activate flask-test
获取conda env的路径并复制它
conda list
用lib\site-packages
附加复制的路径,并通过--path
选项在点子中使用它
pip freeze --path C:\Users\username\Miniconda3\envs\flask-test\lib\site-packages > requirements.txt
在Linux上,路径就像/home/username/miniconda3/envs/flask-app/lib/python3.8/site-packages/