如何通过 conda 安装我自己的 python 模块(软件包)并观察它的变化

我有一个 mysql.py文件,我在几乎所有的项目中都使用它。因为我不想复制和粘贴相同的文件到这些项目中的每一个,我写了一个模块-可能在未来的一个包。

提问

我如何添加一个本地模块到我的 conda 环境,并自动更新或观看它时,我在 mysql.py的东西?如何为一个包裹做同样的事情?

我希望避免设置本地通道/存储库,而只是引用 mysql.py文件夹。

58372 次浏览

我有一个包装函式,我不得不在不同的脚本中多次调用它,所以我把这个文件 wrappers.py复制到了 Anaconda 的 网站套件文件夹中。在我的电脑上,这是在: C: ProgramData Anaconda3 Lib 站点包。然后,当我需要 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).

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

如果您安装了 conda 构建包(并且您有一个包,而不仅仅是一个脚本) ,您可以在“可编辑”模式下安装:

conda develop .

这与 pip 中的“可编辑”模式非常相似

pip install -e .

这两种方法都允许您使用

conda develop -u .

或者

pip uninstall .

如果你只有一个脚本(而不是一个包) ,你可以编辑或者设置环境变量包含脚本的目录。

虽然前面的答案正在做我需要的事情,我只是想展示我将要使用的东西。反正我也打算了解康达套餐。

好的消息来源

  1. Michael Sarahan-制作包装“只是工作”| YouTube
  2. GitHub-audreyr/cookiecutter: 一个命令行实用程序,它从 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-使用不同的 conda-build 根目录-Stack Overflow中提到的设置 CONDA_BLD_PATH。这将是您可以找到您的软件包的目录,然后运行:

conda build conda.recipe

建立你的包和清理后,你与

conda build purge

3. 建立自己的本地频道(不要上传到 anaconda.org)

寻求帮助。

索引每个平台。也许有人可以确认,这一步骤是不需要的,因为我的构建已经包含了 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.yamlsetup.py中给它一个新的版本号,并用 conda build conda.recipe构建软件包。 更新很简单

conda update mypackage

看看你的方案是否有效:

python
>>> import cli from mypackage
>>> cli.cli()
CLI template

这可能不是最佳方式,但我找不到包含上述所有步骤的教程。