ITA*_*ITA 19 pip python-3.x conda
嗨,我通常使用conda来管理我的环境,但是现在我在一个项目中需要比笔记本电脑更大的功率。因此,我尝试使用大学的工作站,该工作站具有新的Intel Xeon。但是我没有管理员权限,并且工作站也没有conda,因此我不得不使用virtualenv和pip3。
如何requirements.txt从conda 生成可与pip3and 一起使用的from venv?
conda list -e > requirements.txt
Run Code Online (Sandbox Code Playgroud)
不会生成兼容文件:
= is not a valid operator. Did you mean == ?
Run Code Online (Sandbox Code Playgroud)
该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
Run Code Online (Sandbox Code Playgroud)
我以为我会手动将所有更改=为,==但=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
Run Code Online (Sandbox Code Playgroud)
rmw*_*zel 136
正如顶部的注释所示,输出
conda list -e > requirements.txt
可用于创建conda虚拟环境
conda create --name <env> --file requirements.txt
但此输出的格式不正确pip。
如果您想要一个可用于创建pip虚拟环境的文件(即requirements.txt格式正确的文件),您可以pip在conda环境中安装,请使用 pip 创建requirements.txt.
conda activate <env>
conda install pip
pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
然后使用结果requirements.txt创建一个pip虚拟环境:
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
当我对此进行测试时,输出中的包并不相同(pip包括较少的包),但足以设置功能环境。
小智 19
在 conda 环境中,只需调用
pip freeze
Run Code Online (Sandbox Code Playgroud)
我有:
ipykernel @ file:///C:/ci/ipykernel_1607454116140/work/dist/ipykernel-5.3.4-py3-none-any.whl
ipython @ file:///D:/bld/ipython_1612487184680/work
...
Run Code Online (Sandbox Code Playgroud)
想要的格式:
ipykernel==5.3.4
ipython==7.20.0
...
Run Code Online (Sandbox Code Playgroud)
在激活的 conda 环境中,我不得不使用
pip list --format=freeze
Run Code Online (Sandbox Code Playgroud)
为喜欢在虚拟环境中使用 pip 的人获取生成需求文件的正确格式。
Ais*_*ngh 15
以防万一有人希望从 conda 中的现有项目生成 requirements.txt,请使用以下内容
转到您的项目环境 conda activate <env_name>
conda list 为您提供用于环境的软件包列表
conda list -e > requirements.txt 将有关包的所有信息保存到您的文件夹中
conda env export > <env_name>.yml
pip freeze
在讨论之后,我想提到的是,您实际上可以看到pip和conda角色的某些分离。
pip是一个标准的软件包管理器,它做一件事并且做得很好。requirements.txt可以在一个环境中生成并pip在新环境中安装。
现在有conda输出:您正确地捕获了他们的评论,说“我们生成了要与conda一起使用的库列表”。请注意,python本身在conda列表中,并且(适当地)不在requirements.txt。conda复制自己的安装程序,这就是其库列表较长且具有python本身的原因。
pip产生安装在标准库顶部的软件包列表,以使您编写的软件包起作用。希望这有助于区分两者。
此外,pipenv是一种较新的工具,可以为您执行虚拟环境和程序包管理。
正如上面评论中提到的,正确的完整答案是:
pip list --format=freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14001 次 |
| 最近记录: |