我正在尝试从数据管道中制作一个 conda 包。我们的想法是通过我们的部门在本地分发软件包以进行快速部署。
我们的管道使用了常见 conda 通道中不适用于 Windows 的 2 个软件包:SimpleITK 和 scitools3。在使用所有其他 conda 包依赖项创建 conda 环境后,我们通常会通过 pip 安装这两个包。
我制作了以下 conda 包配方meta.yaml:
{% set name = "package_name" %}
{% set version = "1.0.0" %}
package:
name: "{{ name|lower }}"
version: "{{ version }}"
source:
path: ..
build:
number: 0
script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv"
entry_points:
- cmr = package_name.api.cli.command_line_interface_segmentation:main
- cupdate = package_name.api.cli.continuous_update:parse_and_run
requirements:
host:
- python
- pip
run:
- python=3.7.4
- …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 makefile 中自动化 conda 构建过程。我使用以下命令构建 conda 包。
conda build . --output-folder dist/conda
Run Code Online (Sandbox Code Playgroud)
foo-1.0.0-0.tar.bz2在 下创建一个文件dist/conda/linux-64。接下来,我想对该文件做一些额外的事情。但我不知道确切的路径,因为包名称、版本、内部版本号和平台可能会改变。
如何在 Makefile 中实现这一目标?我尝试过在 conda 构建期间创建的一些环境变量,但似乎它们仅在构建期间可用。
我有一个有效的 pip 包,我试图将它放到 Anaconda.org 服务器上。我使用 conda 框架创建了 meta.yaml 文件,其中包含对 pint 的要求(未选择特定版本,因此它应该默认为最新版本。)但是,当我尝试使用 conda build 构建包时,conda 会引发此错误:
raise DependencyNeedsBuildingError(exc, subdir=subdir)
conda_build.exceptions.DependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: ['pint']
但是,有一个为 osx-64 构建的品脱......在 conda 和 pip 以及我的机器上 - 这是我用来运行我的 pip 包的那个。conda 正在寻找哪个存储库以找到该要求,以及如何指定要在 meta.yaml 中使用的正确品脱?
所以我希望打包一个需要科学库的相当复杂的 python 应用程序。这个问题有点类似于stackoverflow pip vs conda 的讨论,但它没有详细介绍自 2016 年以来 linux 轮子的二进制打包可用的差异。 我已经看到pypi/cryptography使用 manylinux 并通过 pypi 轮子分发二进制文件。另一个包 mpi4py 只发布 conda 的二进制包,只是因为困难。甚至可以说二元轮不适合这项任务。
通过轮子共享库打包与 conda 相比是什么样的?截至 2018 年,通过轮子共享库打包是否值得?
我的包裹需要
我的所有静态二进制文件大约为 100Mb,因此它确实需要很多共享库。许多我还指出,即使对我自己来说,安装也是一种巨大的痛苦......我无法想象尝试自己安装它的人会是什么样子。到目前为止,我有一个可用的 docker 容器。
如何排除打包文件夹conda build?
我正在使用构建第一个软件包conda build。
我的meta.yaml文件如下所示:
package:
name: 'some_name'
version: {{ load_setup_py_data().get('version') }}
source:
path: ./
build:
script: python setup.py install --single-version-externally-managed --record=record.txt
requirements:
run:
- python >=3.6
- pandas >=0.2
- numpy >=1.12
# Packages that must be installed
# in the user's conda environment
# to run this package.
build:
# Packages used by setup.py
# to install this package.
# May also install compilers
# for non-python code.
- python
- …Run Code Online (Sandbox Code Playgroud) 老实说,我无法弄清楚这个错误发生了什么。我以为这是我的清单文件中的内容,但显然不是。
\n请注意,此目录位于我的 Google 云端硬盘中。
\n这是我的MANIFEST.in文件:
graft soothsayer_utils\ninclude setup.py\ninclude LICENSE.txt\ninclude README.md\nglobal-exclude Icon*\nglobal-exclude *.py[co]\nglobal-exclude .DS_Store\nRun Code Online (Sandbox Code Playgroud)\n我在目录中运行conda build .并收到以下错误:
Packaging soothsayer_utils\nINFO:conda_build.build:Packaging soothsayer_utils\nINFO conda_build.build:build(2214): Packaging soothsayer_utils\nPackaging soothsayer_utils-2022.01.19-py_0\nINFO:conda_build.build:Packaging soothsayer_utils-2022.01.19-py_0\nINFO conda_build.build:bundle_conda(1454): Packaging soothsayer_utils-2022.01.19-py_0\nnumber of files: 11\nFixing permissions\nPackaged license file/s.\nINFO :: Time taken to mark (prefix)\n 0 replacements in 0 files was 0.11 seconds\n\'site-packages/soothsayer_utils-2022.1.19.dist-info/Icon\' not in tarball\n\'site-packages/soothsayer_utils-2022.1.19.dist-info/Icon\\r\' not in info/files\nTraceback (most recent call last):\n File "/Users/jespinoz/anaconda3/bin/conda-build", line 11, in <module>\n sys.exit(main())\n File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/cli/main_build.py", line 474, in main\n execute(sys.argv[1:])\n …Run Code Online (Sandbox Code Playgroud) 我使用 Poetry 作为依赖管理和打包工具开发了我的第一个 Python 包。
将我的工作发布到 PyPI 就像运行一样简单:
poetry publish --build
Run Code Online (Sandbox Code Playgroud)
现在,我想让我的包也可以在 conda 生态系统中使用。作为初步步骤,我尝试使用conda build.
这就是我的(匿名)meta.yaml文件的样子:
{% set version = "0.1.4" %}
package:
name: "<my-package-name>"
version: {{ version }}
source:
url: <URL-of-the-source-distribution-of-my-package-on-PyPI>.tar.gz
sha256: <SHA256-of-the-source-distribution-of-my-package-on-PyPI>
build:
noarch: python
script: python -m pip install .
requirements:
host:
- python
- pip
run:
- python
about:
license: MIT
license_familY: MIT
license_file: LICENSE
summary: "<Brief-project-description>"
Run Code Online (Sandbox Code Playgroud)
运行时conda build,出现以下异常:
ModuleNotFoundError: No module named 'poetry'
Run Code Online (Sandbox Code Playgroud)
紧接在这些行之后:
[...]
Processing $SRC_DIR
Preparing wheel …Run Code Online (Sandbox Code Playgroud) 我正在查看 Conda 的文档,我发现了这个:https://docs.conda.io/projects/conda-build/en/latest/resources/commands/conda-develop.html?highlight=develop
它解释了如何在开发模式下安装包,但它似乎没有解释这实际上意味着什么以及它与正常安装有何不同。
我正在尝试创建一个 anaconda python 包。我的meta.yaml看起来像这样:
package:
name: liveprint-lib
version: "0.1.0"
build:
number: 0
requirements:
build:
- pip
- python=3.7
- setuptools
run:
- python=3.7
- numpy
- opencv
about:
home: https://github.com/monomonedula/liveprint
license: Apache License 2.0
license_file: LICENSE.txt
summary: Python utility library for dynamic animations projections
Run Code Online (Sandbox Code Playgroud)
build.sh:
$PYTHON setup.py install
Run Code Online (Sandbox Code Playgroud)
文件夹结构:
.
??? bld.bat
??? build.sh
??? LICENSE.txt
??? liveprint
??? meta.yaml
??? README.md
??? resources
??? setup.py
??? test
Run Code Online (Sandbox Code Playgroud)
我运行时得到的错误conda build .如下:
/home/vhhl/programs/anaconda3/conda-bld/liveprint-lib_1581422598848/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/bin/python: can't open file …Run Code Online (Sandbox Code Playgroud) 我正在尝试打包我的 python 代码以在 Anaconda 云上发布。文件夹结构如下所示:
.
??? conda-recipe
? ??? build.bat
? ??? build.sh
? ??? meta.yaml
??? demos
? ??? datasets
? ? ??? com-amazon.all.dedup.cmty.txt
? ? ??? com-amazon.ungraph.txt
? ? ??? email-Eu-core-department-labels.txt
? ? ??? email-Eu-core.txt
? ??? directed_example.ipynb
? ??? email_eu_core_network_evaluation-Copy1.ipynb
? ??? node_classification.ipynb
? ??? zacharys_karate_club_evaluation.ipynb
??? LICENSE.txt
??? README.md
??? setup.py
??? sten
? ??? embedding.py
? ??? __init__.py
??? test
? ??? __init__.py
? ??? test_system.py
??? zachary_computed.png
??? zachary_expected.png
Run Code Online (Sandbox Code Playgroud)
该meta.yaml文件:
. …Run Code Online (Sandbox Code Playgroud) conda-build ×10
conda ×9
python ×8
anaconda ×5
conda-forge ×1
macos ×1
package ×1
pip ×1
pypi ×1
python-3.x ×1
python-wheel ×1