问题标签 [python-packaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
145 浏览

python - 如何从 python 轮子构建(不安装)

我有一个安装 python 库的工作流程,其工作方式如下:

  1. 下载源
  2. 构建自setup.py
  3. 手动将构建文件安装到网络位置。

我想pip用来处理下载和依赖解析,以将我的工作流程更改为如下所示:

  1. 用于pip download PACKAGE下载 PACKAGE 及其所有依赖项的 python 轮子。
  2. 从每个 Wheel 文件构建 PACKAGE 和所有依赖项。
  3. 手动将构建文件安装到网络位置。

在第二个工作流程中执行步骤 #2 的最佳方法是什么?我找到了很多从轮子安装的选项,但是有没有一种方法可以在不安装的情况下简单地构建?

我基本上想要从 中获得的相同输出python setup.py build,但使用 python 轮子而不是项目源。

0 投票
0 回答
25 浏览

python - 创建一个 pip 包以允许其他人下载 - 安装创建的包时出现问题

我创建了一个包“honeywell_thermostat”并将其添加到 github。我想通过以下方式将其添加到 pypi:“python setup.py bdist_egg upload --quiet”

看起来该软件包已在 pypi.python.org 上正确安装,但未在任何机器上正确安装。

这是我的 setup.py:

我的目录结构如下所示:

设置.cfg:

当我在具有 python 版本 2.7.12 的机器上运行命令时:

我得到以下信息:

当我尝试在另一台机器上安装包时(运行 python 版本 2.7.12):

我明白了:

提前感谢任何人可能有的任何支持或建议

0 投票
1 回答
122 浏览

python - 将需要 C 编译器的 Python 程序打包

我正在创建和打包一个 Python (2.7) 程序以在 Amazaon WS 上创建一个 Lambda 函数。我拥有的程序依赖于PySha3 包,它本质上是一个围绕优化的 Sha3 C 包的 Python 包装器。Pysha3 导入一个 C 文件;这两个文件的源代码可以在这个 Github Repository中看到。

为了将包导入 Lambda 平台,必须压缩并上传整个文件和所有依赖项。当我这样做并在上传后尝试测试包时,我收到一个错误,即找不到从 PySha3 包中包含的 C 文件导入的 Sha3 类。由于我自己的研究和故障排除的结果,我决定在我的程序目录的根目录中安装一个 Pysha3 轮,我相信这是正确的举动。但是,当我这样做时,我收到以下错误:

在此处输入图像描述

我真的希望,如果我可以通过安装 C 编译器来正确安装轮子,并且可以以某种方式将 C 编译器与我的程序一起打包,那么 Lambda 就可以工作。我找到了这个 Python 编译器,我希望安装它可以在本地修复我的错误,也许将它包含在 zip 文件中可以修复 Lambda AWS 上的错误。

所以,我的问题是,我的思考过程似乎有效吗?同样,关于如何将编译器包含在压缩文件中以便实际使用的任何提示/指导?我对这一切都很陌生,所以任何事情都会有所帮助。非常感谢!

0 投票
1 回答
177 浏览

django - 安装打包的 Django 应用程序导致失败的“迁移”错误“没有名为...的模块”

Ubuntu 16.04 LTS • nginx 1.10.0 • Python 2.7.12 • Django-1.10.5

我已经完成了https://docs.djangoproject.com/en/1.10/intro/tutorial07/上的教程,这些教程都是使用 virtualenv 构建的

为了学习打包我的应用程序并重用它,我正在关注https://docs.djangoproject.com/en/1.10/intro/reusable-apps/上的教程,它不使用 virtualenv,但我无法得到它上班

该应用程序称为“民意调查”。这是我为创建包所做的:

  1. 删除了我的应用程序中留下的所有 .pyc 文件

  2. pip install setuptools & sudo pip install django

  3. 将我的(正常运行的)应用程序目录从项目目录移动到我的主目录

    ~$ mv -rfp 示例/民意调查 django-polls

  4. 在新的“django-polls”文件夹中,我创建了README.rstLICENSE并修改了setup.py,由

注释掉:

  1. 创建MANIFEST.in(无文档)

  2. 构建包,没有问题:python setup.py sdist

到目前为止,一切似乎都正常工作。

我想在其他站点重新使用我的应用程序,但安装后无法完成迁移。

我安装了没有明显问题的新软件包:

为了完成安装,我:

  1. 在不同的站点/项目文件夹中的 settings.py中将“投票”添加到 INSTALLED_APPS

  2. 通过添加修改urls.py

    url(r'^polls/', 包括('polls.urls')),

  3. python manage.py 迁移

现在我得到一个错误:

我想:也许是因为我用 --user 标志安装了民意调查,它对 virtualenv 不可用,所以我“工作”了 virtualenv 并重新安装民意调查:

一切正常,但是当我尝试迁移时遇到同样的错误:

所以,我无法让我的应用程序在 virtualenv 中工作。

要获取民意调查的路径,我输入:

并得到“无法卸载需求投票,未安装”

如果我在 virtualenv 中或者我已停用它,结果是相同的。

为了检查安装位置,我尝试使用和不使用 virtualenv 重新安装应用程序并获得:

因此,该应用程序安装在 virtualenv 内部和外部,但是当我进行迁移时它都丢失了。

我花了一整天的时间尝试各种路径和其他类似教程,但无法超越这一点。

0 投票
3 回答
11393 浏览

python - 如何在不安装的情况下列出python库的依赖项?

有没有办法在不先安装给定 python 包的情况下获取依赖项列表?

我目前可以获得要求列表,但它需要安装软件包。例如,我可以使用 pip 显示基本需求信息,但它不包括版本信息:

我尝试了一个名为的库pipdeptree,其中包含更好的需求输出,但它也需要安装包

理想情况下,我会得到所pipdeptree提供的详细程度。此外,能够requirements.txt从 pythonwheel或 pypi生成文件pip也足够了。

我对给定包的依赖约束感兴趣,而不是在解决依赖要求后最终下载的包。例如,我真的不在乎下载的 pip package-2.3.4,我宁愿知道这package>=2.1是一个要求。

0 投票
3 回答
8038 浏览

python - 如何编辑车轮包(.whl)?

我有一个 python wheel 包,提取后我找到了一些 python 代码,我想编辑此代码并再次重新生成相同的 .whl 包并对其进行测试以查看编辑内容。我该怎么做?

0 投票
1 回答
419 浏览

python - Anaconda:上传到全球频道

我使用 pip 有一段时间了,但我现在需要使用 Anaconda,因为它h5py在 Windows 上支持而无需编译它。

我将我的第一个包上传到 Anaconda.org(使用教程),一切都很顺利。但是......我注意到我必须运行这个命令来安装:

虽然我注意到其他软件包(如 PyQt 和 h5py)可以安装:

因此,显然需要做一些特别的事情才能访问“全球频道”。我找不到任何关于那个的信息。如何将我的包裹上传到全球频道?

0 投票
1 回答
454 浏览

python - Python:奇怪的导入行为

我有一个具有以下结构的包

请注意,项目文件夹和源文件夹共享相同的名称 (projectX)。

问题有点复杂,需要做一些前提

前提:

我总是启动界面并且总是启动界面。没有调用其他脚本

我的问题首先出现在尝试从 stats_worker2 导入 main_worker 时。

我无法让它作为相对进口。因此,我尝试从 stats_worker2 和接口(分别)将父目录附加到 sys.path。我尝试了各种我不记得的方法。

它最终通过将以下行添加到 stats_worker2 来工作

现在怪事开始了

在调用脚本几次之后(我不记得具体有多少次),上面的 sintax 不再起作用了。因为有一个:ImportError: No module named projectX

编辑:上面的斜体部分是由于我__init__.py在 projectX 源文件夹中缺少一个。所有其他症状仍然存在。

但是,很奇怪,我现在可以从 stats_worker2 成功导入主要工作人员:

没有任何目录被附加到 sys.path!

但是,Sphinx 不再起作用了!具体来说,它无法导入 projectX 包的所有模块。

额外的怪异

我曾经从界面成功导入stats_worker,现在我仍然可以导入它,但是我的IDE(Pycharm)将导入标记为未使用。它实际上已被使用,如果我评论导入,界面会按预期崩溃(我已经使 Pycharm 缓存无效)

0 投票
0 回答
215 浏览

python - 更改包导入路径

我有以下情况:

指向“packageA”的路径在我的 PYTHONPATH 环境变量中。由于其他原因,我想避免在 PYTHONPATH 中放置“some_path”。

现在,如果我想从我写的地方导入“subpackageB”

我想避免这种情况,为了避免名称冲突,我需要导入的逻辑路径为:

我想知道是否有任何方法可以做到这一点,也许将 __init__.py 放在“packageA”目录中。有没有办法用当前的目录布局来实现这一点?

谢谢。

0 投票
1 回答
5199 浏览

python - Python打包模块的版本冲突问题

我正在使用 stack.sh 部署 OpenStack Newton devstack

我遇到了以下问题:

看起来一个名为“打包”的包存在版本冲突。

这是我所做的 - >尝试通过执行以下操作卸载并重新安装软件包:

但这并没有真正帮助,我再次遇到同样的错误。

请帮我解决这个问题,请具体说明我应该执行哪个命令以及在哪个目录中。