maj*_*588 5 python packaging anaconda conda miniconda
构建 conda 包并将其安装到新的空环境中后,我的包无法导入,因为它被放置到 python3.8/site-packages 目录中,而环境的 python 可执行文件和所有包依赖项都在 python3.7 下。
从空环境开始:
conda create -n myenv
conda install --use-local mypackage
安装结果如下:
~/miniconda3/envs/myenv/lib/python3.8/site-packages
|-mypackage/
|-mypackage-0.0.0-py3.8.egg.info/
~/miniconda3/envs/myenv/lib/python3.7/site-packages
|- all of the dependencies...
Run Code Online (Sandbox Code Playgroud)
生成的 conda env 也最终将其 python 版本设置为 3.7。显然,现在当我打开 python 控制台并尝试导入我的包时,它失败了。令人困惑的是,我的 meta.yml 中确实有一个导入测试,用于测试导入我的包,该包似乎在 conda 构建过程中通过了。
如果我将我的 meta.yml python 版本固定到它python=3.7而不是python>=3.7它的工作原理。我的包最终与其他所有内容一起安装在 python3.7/site-packages 中,并且工作正常。
我的 meta.yml 中的相关构建要求:
requirements:
build:
- setuptools
- nodejs>=14.5.0
- mkdocs>=1.1.2
- mkdocs-material>=5.4.0
- mkdocs-material-extensions>=1.0
host:
- python
run:
- python>=3.7
- rabbitmq-server>=3.7.16
- pika>=1.1.0
- pyzmq>=19.0.1
- pyyaml>=5.3.1
- numpy>=1.18.5
- sqlalchemy>=1.3.18
- sqlite>=3.28.0
- netifaces>=0.10.9
- psutil>=5.7.0
- uvloop>=0.14.0
- numexpr>=2.7.1
- fastapi>=0.59.0
- uvicorn>=0.11.3
test:
imports:
- mypackage
Run Code Online (Sandbox Code Playgroud)
我的 conda 配方 build.sh 中的相关行:
$PYTHON setup.py install
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |