【问题标题】:build conda package from local python package从本地 python 包构建 conda 包
【发布时间】:2021-11-11 17:53:17
【问题描述】:

我找不到一个完整的示例,说明如何从我编写的 python 包创建 conda 包,以及如何使用 conda install 安装包,而它在我的计算机上而不是在 anaconda 云上。 我正在寻找例如不使用 pypi 的 conda 骨架,而是在我的 windows 机器上使用 python 包,源代码必须在我的 windows 机器上,而不是在 pypi 或其他云上。 任何帮助都会很重要。 非常感谢

【问题讨论】:

  • 我通常在源目录中创建一个名为conda.recipe 的目录,并使用这个meta.yaml 文件模板:github.com/bryanwweber/UConnRCMPy/blob/master/conda.recipe/… 免责声明:这是我的一些软件的作者。有时间我会尝试写一个更完整的例子
  • 然后你可以通过编写(从主源目录)conda build conda.recipe 来构建包,然后安装conda install --use-local。如果你想完全跳过包构建,只安装包作为开发版本,类似于pip -e,你可以使用conda develop .
  • 感谢您的帮助。
  • 能否分享您在本示例中使用的 setup.py 脚本?

标签: python package conda


【解决方案1】:

我认为如果您使用可编辑的方式来安装带有 conda 的软件包,这应该是微不足道的。我做到了:

conda develop .

在项目目录中(我的setup.py 文件所在的位置)。

如果您想要setup.py 的示例,这是我的:

from setuptools import setup
from setuptools import find_packages

setup(
    name='ml', #project name
    version='0.1.0',
    description='ML',
    #url
    author='Me',
    author_email='charlie_parker@mit.edu', #not a real e-mail
    license='MIT',
    packages=find_packages(),
    install_requires=['torch','numpy','scikit-learn','scipy','matplotlib','pyyml']
)

上面的文件位于项目的根目录(我做了一个名为project 的github repo,并在里面创建了一个项目project,其中包含我在那里开发的所有包。

我相信pip -e . 也会这样做。你应该不需要 sudo 任何东西。

【讨论】:

    【解决方案2】:

    可以使用以下方法在元数据文件 meta.yaml 中指定本地源目录:

      source:
         path: ../src
    

    https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#source-from-a-local-path

    此外,要打包您自己的程序,您必须在 build.sh 文件中定义构建和安装它所需的步骤(例如,为使用 setuptools 的 python 脚本运行 setup.py install:https://setuptools.readthedocs.io/en/latest/index.html)适用于 windows 的 linux 和 bld.bat。

    【讨论】:

      【解决方案3】:

      即使没有配方,您也可以使用python setup.py bdist_conda 从本地 python 包轻松生成 conda 包:

      通过使用 setup.py bdist_conda,您可以使用 conda build 构建包以供 Python 安装而不是 conda。这是在不使用配方的情况下构建包的快速方法,但它有局限性。该脚本仅限于构建中使用的 Python 版本,并且它不像使用配方那样具有重现性。我们建议使用带有 conda build 的配方。

      https://docs.conda.io/projects/conda-build/en/latest/user-guide/recipes/build-without-recipe.html

      【讨论】:

        【解决方案4】:

        我在Anaconda Enterprise 文档中找到了一些有用的信息。两个视频链接:

        是我在搜索中找到的最好的东西。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-29
          • 1970-01-01
          • 2020-12-27
          • 2018-09-24
          • 2018-04-06
          • 1970-01-01
          相关资源
          最近更新 更多