从 conda 为 pip3 创建 requirements.txt
From conda create requirements.txt for pip3
您好,我通常使用 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
在讨论之后,我想提一下,您实际上可以看到 pip
和 conda
角色的一些分离。
pip
是一个标准的包管理器,它只做一件事并且做得很好。 requirements.txt
可以在一个环境中生成,在新环境中由pip
安装。
现在有 conda
输出:您正确地捕获了他们的评论 'we generated this list of libraries to work with conda'。请注意 python 本身在 conda 列表中并且(正确地)不在 requirements.txt
中。 conda
复制自己的安装,这就是为什么它的库列表更长,并且有 python 本身。
pip
生成安装在标准库之上的包列表,以使您编写的包工作。希望它有助于区分两者。
此外 pipenv 是一个较新的工具,它可以为您进行虚拟环境和包管理。
以防万一有人希望从 conda 中的现有项目生成 requirements.txt,请使用以下
进入你的项目环境conda activate <env_name>
conda list
为您提供用于环境的软件包列表
conda list -e > requirements.txt
将有关包的所有信息保存到您的文件夹
conda env export > <env_name>.yml
pip freeze
如顶部的注释所示,
的输出
conda list -e > requirements.txt
可用于创建 conda
虚拟环境
conda create --name <env> --file requirements.txt
但是此输出的格式不适合 pip
。
如果您想要一个可用于创建 pip
虚拟环境的文件(即正确格式的 requirements.txt
)
您可以在 conda
环境中安装 pip
,然后使用 pip 创建 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
包含的包较少),但足以设置功能环境。
对于那些在 requirements.txt 中获得奇怪路径引用的人,请使用:
pip list --format=freeze > requirements.txt
激活 conda 环境
conda activate flask-test
获取conda env的路径并复制
conda list
将复制的路径附加到 lib\site-packages
并在带有 --path
选项的 pip 中使用它
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/
在 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 的人获取生成需求文件的正确格式。
如以上评论所述,正确的完整答案是:
pip list --format=freeze > requirements.txt
您好,我通常使用 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
在讨论之后,我想提一下,您实际上可以看到 pip
和 conda
角色的一些分离。
pip
是一个标准的包管理器,它只做一件事并且做得很好。 requirements.txt
可以在一个环境中生成,在新环境中由pip
安装。
现在有 conda
输出:您正确地捕获了他们的评论 'we generated this list of libraries to work with conda'。请注意 python 本身在 conda 列表中并且(正确地)不在 requirements.txt
中。 conda
复制自己的安装,这就是为什么它的库列表更长,并且有 python 本身。
pip
生成安装在标准库之上的包列表,以使您编写的包工作。希望它有助于区分两者。
此外 pipenv 是一个较新的工具,它可以为您进行虚拟环境和包管理。
以防万一有人希望从 conda 中的现有项目生成 requirements.txt,请使用以下
进入你的项目环境
conda activate <env_name>
conda list
为您提供用于环境的软件包列表conda list -e > requirements.txt
将有关包的所有信息保存到您的文件夹conda env export > <env_name>.yml
pip freeze
如顶部的注释所示,
的输出conda list -e > requirements.txt
可用于创建 conda
虚拟环境
conda create --name <env> --file requirements.txt
但是此输出的格式不适合 pip
。
如果您想要一个可用于创建 pip
虚拟环境的文件(即正确格式的 requirements.txt
)
您可以在 conda
环境中安装 pip
,然后使用 pip 创建 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
包含的包较少),但足以设置功能环境。
对于那些在 requirements.txt 中获得奇怪路径引用的人,请使用:
pip list --format=freeze > requirements.txt
激活 conda 环境
conda activate flask-test
获取conda env的路径并复制
conda list
将复制的路径附加到 lib\site-packages
并在带有 --path
选项的 pip 中使用它
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/
在 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 的人获取生成需求文件的正确格式。
如以上评论所述,正确的完整答案是:
pip list --format=freeze > requirements.txt