如果您安装 conda 构建包(并且您有一个包,而不仅仅是一个脚本),您可以在“可编辑”模式下安装:
conda develop .
(使用您的脚本从目录运行)。这与 pip 的“可编辑”模式非常相似
pip install -e .
任何一种方法都可以让您卸载软件包
conda develop -u .
或者
pip uninstall .
如果您只有一个脚本(不是包),您可以编辑或设置 PYTHONPATH
环境变量以将目录包含在脚本中。
虽然以前的答案正在做我需要的事情,但我只想展示我将使用什么。因为无论如何我计划学习 conda 包......
0. 良好的来源
Michael Sarahan - 使包装和包装“正常工作” | YouTube GitHub - audreyr/cookiecutter:从 cookiecutters(项目模板)创建项目并使用以下模板之一的命令行实用程序:GitHub - audreyr/cookiecutter-pypackage:Python 包的 Cookiecutter 模板。 GitHub - conda/cookiecutter-conda-python: 使用 Python 的 conda 包的 cookiecutter 模板(这是我使用的)
1.使用cookiecutter为conda创建python包模板
conda install -c conda-forge cookiecutter
现在切换到要初始化包的目录,然后执行:
cookiecutter https://github.com/conda/cookiecutter-conda-python.git
这将询问有关您要创建的包的一些基本信息。然后更改为您的回购
cd myrepo
2. 构建你的包
如果未运行,请确保已安装 conda-build
conda install conda-build
确保按照 anaconda - using a different conda-build root directory - Stack Overflow 中的说明设置 CONDA_BLD_PATH
。这将是您可以找到软件包的目录,然后运行:
conda build conda.recipe
构建你的包并在你之后清理
conda build purge
3.建立自己的本地频道(不上传到anaconda.org)
读
创建自定义频道 — Conda 文档
python - 在Windows上将本地频道添加到.condarc - 代码日志
求助。
索引每个平台。也许有人可以确认不需要此步骤,因为我的构建已经包含 repodata.json
。否则:
conda index D:\CODE\condamychannel\win-64
测试是否可以找到包
conda search -c file:///D:\CODE\condamychannel --override-channels mypackage
或直接将频道添加到配置中(每个环境)
conda config --add channels file:///D:\CODE\condamychannel
4.安装(和更新)包
activate myenv
和
conda install mypackage
更改 mypackage
后,我在 meta.yaml
和 setup.py
中为其指定一个新版本号,并使用 conda build conda.recipe
构建包。更新简直了
conda update mypackage
看看你的包是否有效:
python
>>> import cli from mypackage
>>> cli.cli()
CLI template
这可能不是最佳方式,但我找不到包含我上面概述的所有步骤的教程。
conda develop
或 pip -e
?
conda develop
更喜欢这种方法,因为您还可以在环境 YAML 文件等中包含自己的模块。此外,通过这种方式升级到成熟的公共模块也很简单。
pip
是可行的,但是有很多关于这方面潜在问题的报告。它似乎适用于新环境,但更新可能会产生不一致。就我个人而言,我尽量避免在 conda 环境中使用 pip。
我有一个包装函数,我必须在不同的脚本上多次调用它。所以,我将该文件 wrappers.py
复制到 Anaconda site-packages 文件夹。在我的计算机上,它位于:C:\ProgramData\Anaconda3\Lib\site-packages。然后,每当我需要 wrappers.py
时,我只需将其导入我的脚本中,如下所示:
import wrappers
如果您想确保导入成功,您可以在 IDE 中选择 Anaconda 作为您的开发环境,然后在导入后调用 Intellisense:from wrappers import (intellisense suggestions)
。或者你也可以使用 IDLE:
>>> import wrappers
>>>(if you get this prompt, this means the import was successful).
仅当您创建 custom channels 时才能进行 Conda 集成。这是因为 conda 在以下位置搜索包(基于您的操作系统)并告诉 conda 在特定位置搜索您的模块,您必须安装 conda-build
以创建自定义通道:
- https://repo.continuum.io/pkgs/main/win-64
- https://repo.continuum.io/pkgs/main/noarch
- https://repo.continuum.io/pkgs/free/win-64
- https://repo.continuum.io/pkgs/free/noarch
- https://repo.continuum.io/pkgs/r/win-64
- https://repo.continuum.io/pkgs/r/noarch
- https://repo.continuum.io/pkgs/pro/win-64
- https://repo.continuum.io/pkgs/pro/noarch
- https://repo.continuum.io/pkgs/msys2/win-64
- https://repo.continuum.io/pkgs/msys2/noarch
如果您想避免创建存储库/通道,那么上面的简单导入应该可以完成这项工作。此外,如果您对模块进行任何更改并保存它,您的脚本中将始终拥有最新的 import
。
pip -e
vsconda develop
?conda develop
。我在使用conda develop
时遇到的唯一小问题是它不会安装console_scripts
,而pip install -e
会。不过,这可能已经在 conda 中修复了。conda list
,但我的项目/包似乎没有任何熟悉的东西出现。conda list
的输出中。您是否正确配置了setup.py
文件?pip install -e
有效吗?conda develop
没有得到积极维护,并且有人要求弃用或删除它,请参阅 github.com/conda/conda-build/issues/4251。所以**不建议在 2021 年使用conda develop
。