我使用conda环境并且需要一些pip包,例如来自~gohlke的预编译轮.
目前我有两个文件:environment.ymlconda with:
# run: conda env create --file environment.yml
name: test-env
dependencies:
- python>=3.5
- anaconda
Run Code Online (Sandbox Code Playgroud)
以及requirements.txt在激活上述conda环境后可以使用的点数:
# run: pip install -i requirements.txt
docx
gooey
http://www.lfd.uci.edu/~gohlke/pythonlibs/bofhrmxk/opencv_python-3.1.0-cp35-none-win_amd64.whl
Run Code Online (Sandbox Code Playgroud)
是否有可能将它们组合在一个文件中(对于conda)?
我正在开发一个 python 包。我pip freeze > requirements.txt用来将所需的包添加到requirements.txt 文件中。但是,我意识到一些包,而不是包版本,在它们前面有一些路径。
numpy==1.19.0
packaging==20.4
pandas @ file:///opt/concourse/worker/volumes/live/38d1301c-8fa9-4d2f-662e-34dddf33b183/volume/pandas_1592841668171/work
pandocfilters==1.4.2
Run Code Online (Sandbox Code Playgroud)
而在环境内部,我得到:
>>> pandas.__version__
'1.0.5'
Run Code Online (Sandbox Code Playgroud)
你知道如何解决这个问题吗?
我从全新安装的 miniconda3 创建了 conda 环境。
之后我将其导出,这是文件的内容(我唯一的额外安装是 Flask):
name: myenv
channels:
- defaults
dependencies:
- ca-certificates=2018.03.07=0
- certifi=2018.11.29=py37_0
- click=7.0=py37_0
- flask=1.0.2=py37_1
- itsdangerous=1.1.0=py37_0
- jinja2=2.10=py37_0
- libcxx=4.0.1=hcfea43d_1
- libcxxabi=4.0.1=hcfea43d_1
- libedit=3.1.20170329=hb402a30_2
- libffi=3.2.1=h475c297_4
- markupsafe=1.1.0=py37h1de35cc_0
- ncurses=6.1=h0a44026_1
- openssl=1.1.1a=h1de35cc_0
- pip=18.1=py37_0
- python=3.7.1=haf84260_7
- readline=7.0=h1de35cc_5
- setuptools=40.6.2=py37_0
- sqlite=3.26.0=ha441bb4_0
- tk=8.6.8=ha441bb4_0
- werkzeug=0.14.1=py37_0
- wheel=0.32.3=py37_0
- xz=5.2.4=h1de35cc_4
- zlib=1.2.11=h1de35cc_3
prefix: /Users/rossid/miniconda3/envs/phadmin
Run Code Online (Sandbox Code Playgroud)
现在我想要的是在文档图像中重新创建这个环境,所以我创建了这个 Dockefile
FROM continuumio/miniconda3
ADD * myappdir/
RUN conda env create -f /myappdir/environment.yml
Run Code Online (Sandbox Code Playgroud)
但它会失败:
Step 1/5 : FROM continuumio/miniconda3 …Run Code Online (Sandbox Code Playgroud) 我在 Windows 10 PC 上创建了一个 conda 虚拟环境来处理一个项目。要安装所需的包和依赖项,我使用conda install <package>而不是pip install <package>按照https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html# 中提到的最佳实践在环境中使用 pip
为了分发我的软件,我选择分别针对 conda 和非 conda 用户创建一个 environment.yml 和一个 requirements.txt 文件。我能够将当前的虚拟环境导出到 yml 文件中,这样 conda 用户就得到了照顾。但是,为了让非 conda 用户能够复制相同的环境,我需要创建和共享 requirements.txt 文件。可以使用创建此文件,conda list --export > requirements.txt但此格式与 pip 不兼容,其他用户无法pip install -r requirements.txt在其系统上使用。
使用pip freeze > requiremens.txt是这里和这里提到的解决方案。这意味着非 conda 用户可以简单地pip install -r requirements.txt在虚拟环境中执行,他们可以在没有 conda 的情况下使用 virtualenv 创建该虚拟环境。
但是,如果您生成上述样式的 requiremets.txt 文件,您最终会得到一个带有符号链接的 requirements.txt 文件。这是因为我们尝试为使用conda install而不是pip …
python ×4
pip ×3
conda ×2
anaconda ×1
docker ×1
dockerfile ×1
miniconda ×1
path ×1
python-3.x ×1