如何将conda骨架与未上传到pypi的包一起使用?

时间:2016-04-25 11:39:19

标签: python anaconda pypi conda

我正在尝试使用conda skeleton为一些未上传到pypi的python包构建conda包。

我无法将它们上传到pypi,我不想要部署本地pypi服务器。它们存储在本地机器上,是最近构建的结果,现在我也想构建它们的conda包。

我该怎么做?我为--pypi-url尝试了各种选项,但我得到一个OSError: unsupported XML-RPC protocol,它告诉我骨架需要一个真正的PYPI,并且它不能真正处理本地存储库。 PIP可以毫无问题地使用本地目录。

克服这个问题的方法是什么?

1 个答案:

答案 0 :(得分:1)

你实际上不必使用conda骨架。我相信你有一个在conda env中构建的模块/包,你想打包它。如果是这样,那么构建meta.yaml文件和build.sh(macOS)就足够了。

例如: 假设您有一个名为condabuild_sample的项目。

cd condabuild_sample

使用您喜欢的编辑器并创建一个新文件meta.yaml我使用vim

vi meta.yaml

*更新meta.yaml:

package:
     name: <your package name>
     version: <ideally your git version>

source:
     git_path: <git link> 
requirements:
     run:
         - <a list of project import requirements>
about:
     home: <project home>
     license: <custom license file>*

实际上,只需要tag:包。根据您的项目需求,您可以自定义所有内容。

然后创建另一个文件build.sh,并为您的包提供构建说明。 build.sh作为bash执行。但你可以把它留空来学习和测试。

获得meta.yaml和bash.sh后,运行以下

conda build condabuild_sample

如果没有错误,则将包添加到您的conda设置中的目录中。一旦此步骤成功完成,

conda install --use-local condabuild_sample

这将添加到本地可用的conda包列表中。 现在运行,确认,

conda list

您会发现使用channel = local列出的包。

您还可以使用anaconda客户端上传到anaconda。

我使用的参考链接: Conda Skeleton Example