Skip to main content
 首页 » 编程设计

python之可以从不同的目录创建 python sdist 吗

2025年01月19日29dudu

想要通过从我要打包的目录之外的目录运行 python setup.py sdist 来创建 python 源代码分发。似乎无法找到一种方法来做到这一点。我有一个动态生成 setup.py 和 MANIFEST.in 的脚本,我想告诉 python 使用这些文件在中创建源的 sdist “那边”的不同目录。

我正在做的是创建一个脚本,让用户创建一个没有任何 setup.py 等的 sdist。他们只是说“打包这个目录和它下面的所有东西”。因此,我在 python tempfile 中生成了一个 setup.py 和 MANIFEST.in(使用 recursive-include * 来获取所有文件) .mkdtemp 目录(在不相关的文件路径中,例如 /tmp/whatever),之后我可以清理它……但我似乎无法使用它们来打包它们的目录。我不想在它们的源目录中创建这些文件。

请您参考如下方法:

你 can use setuptools的,--dist-dir=DIR/-d DIR 选项指定创建默认 dist/ 文件夹的位置。换句话说,这会更改输出目录。

例如:

python setup.py sdist -d /tmp/whatever 

如果您正在使用 distutils.core:您可以使用 from setuptools import setup 而不是使用 from distutils.core import setup。

为了定义source 目录的来源,我认为你可以将目录添加到sys.path 然后是setup() 将自动发现内容文件:

import sys 
from os import path 
# ... 
 
# Add other folders to sys.path 
sys.path.append('/tmp/whatever') 
sys.path.append(path.join(path.abspath('..'), 'some', 'folder'))