问题标签 [sdist]

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 投票
1 回答
103 浏览

python - 使用 python sdist 创建一个包,其中包含构建目录中生成的文件

我在 setup.py 脚本引用的 build/generated-sources 中生成了 python 源文件(来自协议缓冲区定义):

但是 sdist.py 会删除 build 文件夹中的所有文件。

我可以将这些从构建目录中复制出来,但这似乎很hacky?

0 投票
0 回答
101 浏览

python - 使用 sdist 打包子目录中的根源文件

我有以下文件布局:

使用以下设置脚本:

从文档(https://docs.python.org/2/distutils/examples.html)中,我期望包在根级别仅包含 foo.py (因为它被引用为根包''),但是tar 文件包含中间目录(即 build/generated-sources/foo.py)

如何创建一个根目录只有 foo.py 的包?

0 投票
1 回答
490 浏览

python - pip 安装包位置问题

我已经制作了一个包并使用 pip 安装它(已经创建了一个 sdist 包)。但是,当我执行同时安装的脚本时,/usr/local/bin/它也会出错,因为它尝试导入的模块也已安装/usr/local/lib/python2.7/site-packages/MyApplication/Modules/有没有办法让 pip 将执行路径安装到正确的位置,所以当我从它从正确的地方运行的终端(任何目录)?

0 投票
1 回答
1483 浏览

python - 如何在没有 VCS 跟踪的 Python sdist 中分发文件?

我想找到将文件包含在 git 未跟踪的 python sdist 中的正确方法。

语境

我的项目中的.mo文件没有被跟踪git(就像其他一些.txt需要在安装时创建的文件一样)。

我写了一个小函数setup.py来在安装时创建它们,我调用它setup()

请注意,它们应该属于,data_dir因为文档说

data_files 选项可用于指定模块分发所需的其他文件:配置文件、消息目录、数据文件,以及不属于前面类别的任何内容。

因此,这适用于python3 setup.py installbdist也适用于)。.mo文件生成并存储在正确的位置。

但是,如果我希望它与 一起使用sdist,那么我必须将它们包含在MANIFEST.in(例如recursive-include mathmaker *.mo)中。文档确实说

在 3.1 版更改:如果没有提供模板,所有匹配 data_files 的文件都将被添加到 MANIFEST 文件 中。请参阅指定要分发的文件

(该链接没有多大帮助)。

我不愿意在其中包含*.mo文件,MANIFEST.in因为 git 不会跟踪它们。而check-manifest不喜欢这种情况,它抱怨这样一个事实lists of files in version control and sdist do not match!

那么,有没有办法解决这个丑陋的情况呢?

重现情况的步骤

环境与项目

为避免污染您的环境,请在您选择的目录中创建并激活专用虚拟环境(python3.4+):

project0在目录中重现以下树:

其中README.rst,__init__.pydummy_versioned.po为空。

其他文件的内容:

  • .gitignore

    /li>
  • MANIFEST.in

    /li>
  • main.py

    /li>
  • setup.py

    /li>

启动本地git仓库:

安装check-manifest

安装和测试

install作品:

如果您rm project0/data/a_file.txt,则myscript0不再工作,但重新安装它并再次工作,如预期的那样。

构建 sdist 还包括a_file.txt

请注意,要将这个文件包含在 sdist 中,看起来有必要(如下面的“上下文”部分所述)recursive-include project0 *.txtMANIFEST.in. 您是否会删除此行,不再python3 setup.py sdist提及a_file.txt(不要忘记删除任何以前的build/dist/目录来观察这一点)。

结论

因此,一切都按原样运行,但存在这种差异:a_file.txt不被 跟踪git,但被包含在MANIFEST.in.

check-manifest清楚地告诉:

那么,有没有合适的方法来处理这种情况呢?

0 投票
1 回答
2652 浏览

python - 创建一个python包并将其安装为源分发而不是.egg?

我有一个 python 包,它在一个data文件夹中有几个数据文件,使用包时必须读取这些文件;这些不是 python 脚本。但是,当我安装我的包来测试它时,python setup.py install --user~/.local/lib/python2.7/site-package/mypackage-1.0.0-py2.7.egg安装了一个,因此代码无法读取data目录。

我看到其他软件包,例如numpy使用 a*.dist-infonumpy文件夹安装。

我如何让我的包像这样安装?

0 投票
0 回答
72 浏览

python - 是否有检查 Python 分发 (sdist) 文件的工具?

我们曾经在 PyPI 上发布了 Python 源代码分发 (sdist) 文件,但有一个问题在发布后才注意到。即对于某些文件,权限设置为不允许所有人读取,然后在某些情况下,在用户使用sudo.

我们正在考虑启动我们自己的脚本来检查这个问题的 sdist 并在上传到 PyPI 之前运行它。

是否有工具(或 setuptools 或 twine 或其他地方的东西)在上传之前在 sdist 上运行此或其他基本检查?

0 投票
1 回答
819 浏览

python - 运行 sDist 构建包并安装会创建空的构建目录

创建了一个设置文件。使用以下代码,其中 setup.py 是

运行 python setup.py sdist 时,结果会创建一个带有 zip 文件的 dist 文件夹(我在 Windows 上)。打开此文件时,苹果包和所有子文件夹都在其中。苹果的目录树如下

请注意,在屏幕截图中,文件表明它们位于 Apples 文件夹中。

在此处输入图像描述

但是,当我部署到另一台机器时

  1. 解压 zip 文件
  2. cd到目录
  3. python setup.py 安装
  4. 在 site-packages/apples 中创建了一个构建文件夹
  5. 在被复制到站点包文件夹的构建文件夹中只有两个文件(init .py 和 version.py),省略了 core 和 slice 的子目录

在此处输入图像描述

0 投票
0 回答
289 浏览

python - 如何运行 sdist 中的测试套件?

我希望能够在通过安装“mypackage”时运行测试套件pip

我自己创建了mypackage-version.tar.gz文件,使用python setup.py sdist. mypackage-version.tar.gz确实包含tests/目录(此外,它的.egg-info/SOURCES.txt内部也列出了所有文件tests/)。

但是在我pip install mypackage-version.tar.gz在一个专用的全新虚拟环境中运行之后,虚拟环境tests/中的任何地方都没有目录:

阅读pip文档或 的输出pip install --help,我只是不知道是否有任何方法可以要求pip在其余部分正确安装测试。

我也尝试过tests/手动解压目录(连同pytest.ini),但是测试没有开始,因为pytest抱怨找不到mypackage模块(ModuleNotFoundError: No module named 'mypackage'),即使两者都pytest出现mypackagepip list......并且两者都是来自虚拟环境的(正如which命令所说),以及pippython(可以import mypackage)。

然而手动解包看起来很麻烦,所以在深入研究之前,我想知道正确的方法是什么:使用pip?手动解压?还要别的吗?我错过了一些明显的东西吗?

编辑:最后,我可以使用python -m pytest. 但这仍然是一种解决方法,我仍然想知道是否有更合适(和自动化)的方式来安装和运行测试套件

0 投票
1 回答
61 浏览

python - 如何更新 mysql-connector 的 sdist 包?

我正在尝试使用“pip install -U mysql-connector”更新 mysql-connector 的 sdist 包(从 2.1.6 到 2.2.3,window7),但失败了。见下文:

有人遇到过同样的问题和任何可能的解决方案吗?非常感谢。

如何更新 mysql-connector 的 sdist 包

0 投票
0 回答
2287 浏览

python-2.7 - 使用 sdist 运行 setup.py 时出现“包目录不存在”

我在 ex48\ex48\game.py 中有一个 game.py,在 ex48\docs\setup.py 中有我的 setup.py,我在 ex48\ex48__init.py 和 ex48\tests__init__.py 中有init .py。Game.py 包含以下代码:

setup.py 包含以下代码:

当我运行时,python -m setup.py sdist我收到以下消息:

这是我的文件结构的图片:文件结构

为什么我会收到此错误?

============================编辑====================== ========= 我将安装文件放在根文件夹而不是文档中,如下所示。然后我尝试再次安装,并得到了这个:

所以我收到了两个关于找不到文件的警告,当我尝试在另一个脚本中从我的游戏文件中导入模块时,我得到:

所以有些东西不起作用,但我不确定是什么。