问题标签 [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.
python - 使用 python sdist 创建一个包,其中包含构建目录中生成的文件
我在 setup.py 脚本引用的 build/generated-sources 中生成了 python 源文件(来自协议缓冲区定义):
但是 sdist.py 会删除 build 文件夹中的所有文件。
我可以将这些从构建目录中复制出来,但这似乎很hacky?
python - 使用 sdist 打包子目录中的根源文件
我有以下文件布局:
使用以下设置脚本:
从文档(https://docs.python.org/2/distutils/examples.html)中,我期望包在根级别仅包含 foo.py (因为它被引用为根包''),但是tar 文件包含中间目录(即 build/generated-sources/foo.py)
如何创建一个根目录只有 foo.py 的包?
python - pip 安装包位置问题
我已经制作了一个包并使用 pip 安装它(已经创建了一个 sdist 包)。但是,当我执行同时安装的脚本时,/usr/local/bin/
它也会出错,因为它尝试导入的模块也已安装/usr/local/lib/python2.7/site-packages/MyApplication/Modules/
有没有办法让 pip 将执行路径安装到正确的位置,所以当我从它从正确的地方运行的终端(任何目录)?
python - 如何在没有 VCS 跟踪的 Python sdist 中分发文件?
我想找到将文件包含在 git 未跟踪的 python sdist 中的正确方法。
语境
我的项目中的.mo
文件没有被跟踪git
(就像其他一些.txt
需要在安装时创建的文件一样)。
我写了一个小函数setup.py
来在安装时创建它们,我调用它setup()
:
请注意,它们应该属于,data_dir
因为文档说:
data_files 选项可用于指定模块分发所需的其他文件:配置文件、消息目录、数据文件,以及不属于前面类别的任何内容。
因此,这适用于python3 setup.py install
(bdist
也适用于)。.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__.py
和dummy_versioned.po
为空。
其他文件的内容:
/li>.gitignore
:
/li>MANIFEST.in
:
/li>main.py
:
/li>setup.py
:
启动本地git
仓库:
安装check-manifest
:
安装和测试
install
作品:
如果您rm project0/data/a_file.txt
,则myscript0
不再工作,但重新安装它并再次工作,如预期的那样。
构建 sdist 还包括a_file.txt
:
请注意,要将这个文件包含在 sdist 中,看起来有必要(如下面的“上下文”部分所述)recursive-include project0 *.txt
在MANIFEST.in
. 您是否会删除此行,不再python3 setup.py sdist
提及a_file.txt
(不要忘记删除任何以前的build/
或dist/
目录来观察这一点)。
结论
因此,一切都按原样运行,但存在这种差异:a_file.txt
不被 跟踪git
,但被包含在MANIFEST.in
.
check-manifest
清楚地告诉:
那么,有没有合适的方法来处理这种情况呢?
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-info
和numpy
文件夹安装。
我如何让我的包像这样安装?
python - 是否有检查 Python 分发 (sdist) 文件的工具?
我们曾经在 PyPI 上发布了 Python 源代码分发 (sdist) 文件,但有一个问题在发布后才注意到。即对于某些文件,权限设置为不允许所有人读取,然后在某些情况下,在用户使用sudo
.
我们正在考虑启动我们自己的脚本来检查这个问题的 sdist 并在上传到 PyPI 之前运行它。
是否有工具(或 setuptools 或 twine 或其他地方的东西)在上传之前在 sdist 上运行此或其他基本检查?
python - 运行 sDist 构建包并安装会创建空的构建目录
创建了一个设置文件。使用以下代码,其中 setup.py 是
运行 python setup.py sdist 时,结果会创建一个带有 zip 文件的 dist 文件夹(我在 Windows 上)。打开此文件时,苹果包和所有子文件夹都在其中。苹果的目录树如下
请注意,在屏幕截图中,文件表明它们位于 Apples 文件夹中。
但是,当我部署到另一台机器时
- 解压 zip 文件
- cd到目录
- python setup.py 安装
- 在 site-packages/apples 中创建了一个构建文件夹
- 在被复制到站点包文件夹的构建文件夹中只有两个文件(init .py 和 version.py),省略了 core 和 slice 的子目录
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
出现mypackage
在pip list
......并且两者都是来自虚拟环境的(正如which
命令所说),以及pip
和python
(可以import mypackage
)。
然而手动解包看起来很麻烦,所以在深入研究之前,我想知道正确的方法是什么:使用pip
?手动解压?还要别的吗?我错过了一些明显的东西吗?
编辑:最后,我可以使用python -m pytest
. 但这仍然是一种解决方法,我仍然想知道是否有更合适(和自动化)的方式来安装和运行测试套件
python - 如何更新 mysql-connector 的 sdist 包?
我正在尝试使用“pip install -U mysql-connector”更新 mysql-connector 的 sdist 包(从 2.1.6 到 2.2.3,window7),但失败了。见下文:
有人遇到过同样的问题和任何可能的解决方案吗?非常感谢。
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
我收到以下消息:
为什么我会收到此错误?
============================编辑====================== ========= 我将安装文件放在根文件夹而不是文档中,如下所示。然后我尝试再次安装,并得到了这个:
所以我收到了两个关于找不到文件的警告,当我尝试在另一个脚本中从我的游戏文件中导入模块时,我得到:
所以有些东西不起作用,但我不确定是什么。