Mic*_*ael 19
虽然之前的答案正在做我需要的,但我只想展示我将要使用的内容.既然我计划了解conda包装......
conda install -c conda-forge cookiecutter
Run Code Online (Sandbox Code Playgroud)
现在切换到要初始化包的目录,然后执行以下操作:
cookiecutter https://github.com/conda/cookiecutter-conda-python.git
Run Code Online (Sandbox Code Playgroud)
这将询问有关您要创建的包的一些基本信息.然后换成你的回购
cd myrepo
Run Code Online (Sandbox Code Playgroud)
确保conda-build已安装,如果没有安装
conda install conda-build
Run Code Online (Sandbox Code Playgroud)
确保设置anaconda中CONDA_BLD_PATH提到的- 使用不同的conda-build根目录 - Stack Overflow.这将是您可以找到包的目录,然后运行:
conda build conda.recipe
Run Code Online (Sandbox Code Playgroud)
建立你的包裹并在你用完后清理
conda build purge
Run Code Online (Sandbox Code Playgroud)
读
求助.
索引每个平台.也许有人可以确认不需要这一步,因为我的构建已经包含了repodata.json.除此以外:
conda index D:\CODE\condamychannel\win-64
Run Code Online (Sandbox Code Playgroud)
测试是否可以找到包
conda search -c file:///D:\CODE\condamychannel --override-channels mypackage
Run Code Online (Sandbox Code Playgroud)
或直接将通道添加到配置(每个环境)
conda config --add channels file:///D:\CODE\condamychannel
Run Code Online (Sandbox Code Playgroud)
activate myenv
Run Code Online (Sandbox Code Playgroud)
和
conda install mypackage
Run Code Online (Sandbox Code Playgroud)
一旦我改变了mypackage,我就给它一个新的版本号meta.yaml并用setup.py它构建包conda build conda.recipe.更新很简单
conda update mypackage
Run Code Online (Sandbox Code Playgroud)
看看你的包是否有效:
python
>>> import cli from mypackage
>>> cli.cli()
CLI template
Run Code Online (Sandbox Code Playgroud)
这可能不是最佳方式,但我找不到包含上面概述的所有步骤的教程.
如果安装conda构建软件包(并且有一个软件包,而不仅仅是一个脚本),则可以“可编辑”模式安装:
conda develop .
Run Code Online (Sandbox Code Playgroud)
(从带有脚本的目录运行)。这与点子的“可编辑”模式非常相似
pip install -e .
Run Code Online (Sandbox Code Playgroud)
两种方法都可以让您使用以下两种方法卸载软件包
conda develop -u .
Run Code Online (Sandbox Code Playgroud)
要么
pip uninstall .
Run Code Online (Sandbox Code Playgroud)
如果只有脚本(不是软件包),则可以编辑或设置PYTHONPATH环境变量以将目录包括在脚本中。
我有一个包装函数,我必须在不同的脚本上多次调用该函数。因此,我将该文件复制wrappers.py到 Anaconda site-packages文件夹中。在我的计算机上,该位置位于:C:\ProgramData\Anaconda3\Lib\site-packages。然后,每当我需要时wrappers.py,我只需将其导入到我的脚本中,如下所示:
import wrappers
Run Code Online (Sandbox Code Playgroud)
如果您想确保导入成功,您可以在 IDE 中选择 Anaconda 作为开发环境,然后在导入后调用 Intellisense:from wrappers import (intellisense suggestions)。或者你也可以使用 IDLE:
>>> import wrappers
>>>(if you get this prompt, this means the import was successful).
Run Code Online (Sandbox Code Playgroud)
仅当您创建自定义通道时,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
Run Code Online (Sandbox Code Playgroud)
如果您想避免创建存储库/通道,那么如上所述的简单导入就可以完成这项工作。此外,如果您对模块进行任何更改并保存它,您将始终拥有最新的import脚本。