问题标签 [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 吗?
python setup.py sdist
想要通过从我想要打包的目录之外的目录运行来创建 python 源代码分发。似乎无法找到一种方法来做到这一点。我有一个动态生成setup.py
和生成的脚本,MANIFEST.in
我想告诉 python 使用这些文件在“那里”的不同目录中创建源的 sdist。
我正在做的是创建一个脚本,让用户创建一个没有任何等的 sdist setup.py
。他们只是说“打包这个目录及其下的所有内容”。因此,我在python目录(在不相关的文件路径中setup.py
,如 我不想在它们的源目录中创建这些文件。MANIFEST.in
recursive-include *
tempfile.mkdtemp
/tmp/whatever
python - sdist/bdist_wheel 在 Linux 中不包括 pyc,但在 Windows 中包括
我正在尝试创建一个 Python 发行版,我必须在其中包含源代码和编译后的二进制文件。(是的,我阅读了反对/支持添加的论据.pyc
,但我的用例需要.pyc
添加)。在 Windows 中运行我的步骤,源代码和编译后的二进制文件都添加到输出文件中(我同时使用了sdist
和bdist_wheel
)。
假设我有以下结构:
folderA
包含源代码,同时folderB
包含其子目录中的其他文件。
完成的步骤:
- 模块使用编译
compileall
- 中的来源
alpha
被删除。中的来源beta
被保留。 - 跑
python setup.py sdist|bdist_wheel
我find_packages()
在 setup.py 中使用来检测模块。在找到模块时alpha
,未检测到模块beta
。
在Windows 中的结果.tgz
和文件中,所有需要的文件都在那里。.whl
一切都很好。
但是,在 Linux(具体是 Ubuntu)中执行相同的过程时,只beta
添加了 中的模块和一些模块,folderB
而没有添加其他不同类型的文件和模块alpha
. sdist
只会给出 source whilebdist
并且bdist_wheel
只会给出.pyc
s。我知道这sdist
是用于分发源文件,而bdist
用于二进制文件。
我的问题是为什么 Windows 中的行为不同,是否可以在 Linux 中产生相同的输出(源文件和.pyc
其他文件)?
我正在使用 Python 2.7。
python - 在 Python 中使用 data_files 递归添加数据文件夹
我想在安装我的项目时递归地添加文件夹mydata1
和mydata2
根包。所以我把这个函数写在setup.py
:
然后在setup.py
:
创建 sdist 没问题:setup.py sdist upload -r mypypi
但是当我安装时,抛出异常:ValueError: too many values to unpack (expected 2)
.
我是 Python 新手。所以我不知道为什么。在这种情况下你能帮我吗?谢谢!
编辑:
这些代码具有相同的results
:
python - pip install 后执行命令
我将我的包捆绑为 sdist zip 文件,之后我可以使用 pip install 在任何地方导入我的包,但我想在调用 pip install 后自动运行一些安装后命令。我不能使用 python setup.py install 因为它是一个 sdist 并且我正在使用 pip 来安装它。我确实有一个 PostInstall 类,但在 pip install 包之后没有运行。有没有办法在 pip install package 之后自动运行脚本。我曾尝试使用 postinstall,但它不起作用,而且我不确定如何在设置方法中使用脚本 atrib。
这是我的 setup.py 文件: Setup.py
我不能使用 python setup.py install 因为它是一个 sdist 并且我正在使用 pip 来安装它。我确实有一个 MyInstall 类,但在 pip install 包之后没有运行。
python - python setup.py register can't decode byte 0xff in position 0
I'm packaging my python code and hope to upload to my pypi, my setup.py is like this:
#xA;then I successfully run these commands
#xA;After these I can import my package and make a test case either.
But while I register and upload to pypi, it throws this decode error, I have searched and tried many times, all files are encoded by utf-8.
When I am using these commands on windows through powershell, it throws 'gbk' codec can't decode.
I'm not sure what happened actually, my first time uploading codes to pypi...
#xA;python-3.x - Setuptools:使用具有不同所需包的构建变体
我想制作一个源分发(sdist),就所需的包而言,开发和目标平台需要有所不同。
更具体地说,当我为 Raspberry Pi(目标平台)打包时,我不需要opencv-python
.因为 OpenCV 是从那里的源代码构建的,但在开发 PC(Ubuntu)上,我需要opencv-python
.
我试图按照这样的技巧将--raspi
参数传递给setup.py
:
当我运行时python3 setup.py sdist --raspi
,这种方法在生成的./dist/mypackage.tar.gz/mypackage/mypackage.egg-info/requires.txt
不再包含的程度上起作用opencv-python
。
但是当我运行时pip3 install ./dist/mypackage.tar.gz
,我仍然得到一个错误,例如:
这也是当我传递--install-option="--raspi"
到pip3 install
时,我在某处读到的将是setup.py
从 运行时再次传递参数的一种方式pip
。
当我手动编辑分发setup.py
( ./dist/mypackage.tar.gz/mypackage/setup.py
) 并opencv-python
从所需的包中删除时,pip3 安装工作。
还有其他方法可以为不同的构建设置不同的集合或要求吗?例如,使用两个不同的setup.cfg
文件(如何?),每个文件指定他们的包集?我不太喜欢这种方法,因为我在这些方法中大部分都是重复的。
python - 如何在 setup.py 中指定 `--formats` sdist 选项?
我尝试在 linux 发行版上创建一个压缩的源 python 包,而不--formats
在命令行上指定 sdist 选项(使用不支持此选项的现有 Jenkins 管道)。在这里的文档中,它指出:
(假设您没有在设置脚本或配置文件中指定任何 sdist 选项),sdist 会为当前平台创建默认格式的存档。默认格式在 Unix 上是 gzip 的 tar 文件 (.tar.gz),在 Windows 上是 ZIP 文件。
但它没有说明您应该如何在安装脚本中指定 sdist 选项?
python - python setup.py sdist bdist_wheel 的输出目录
做的时候
它创建build
, dist
,packagename.egg-info
目录。我想让它们脱离当前文件夹。
我试过:
--dist-dir=../dist
: 可以使用sdist
但packagename.egg-info
仍然存在--bdist-dir=../dist
: 例如:有效,最终的 bdist 包位于
../dist
. 但是当前文件夹仍然有我不想要的新目录build
,dist
, 。packagename.egg-info
问题:如何将所有内容(sdist 和 bdist_wheel 的输出)放在当前文件夹之外?
当然,我可以用 , 等编写脚本mv
,rm -r
但我想知道是否存在内置解决方案。
python - Python:在 setup.py 中更新 sdist 的文件输出
有没有办法用 python 标签sdist
生成一个?.tar.gz
基本上我正在构建我的库的两个版本(使用 python 3.5 和 python 3.7)。我可以用 bdist_wheel 指定 python 标记,但我不确定如何为 sdist 指定它。
目前我可以做
这会产生
我怎么能拥有somelibrary-0.4.6-py35.tar.gz
和somelibrary-0.4.6-py37.tar.gz
?是否有我可以设置的标志/参数,或者我应该在构建文件后重命名文件?
haskell - cabal new-sdist 也包含测试文件
我想为我的 Haskell 项目创建一个 sdist 包。为简单起见,我们假设以下项目结构:
cabal 文件中定义了两个目标
当我执行时,cabal new-sdist --list-only
我得到以下列表:
我的问题:是否可以在 sdist 包中包含与测试相关的文件,或者我应该删除它们(如果是 - 如何)?