Questions tagged «distutils»

Distutils是Python模块和应用程序的标准打包系统。

5
发行版,distutils,setuptools和distutils2之间的区别?
情况 我正在尝试将开放源代码库移植到Python3。(SymPy,如果有人想知道的话。) 因此,2to3在为Python 3构建时,我需要自动运行。为此,我需要使用distribute。因此,我需要移植当前的系统(根据doctest)是distutils。 问题 不幸的是,我不知道什么是这些模块-之间的区别distutils,distribute,setuptools。该文档最好是粗略的,因为它们似乎都是彼此的分支,旨在在大多数情况下兼容(但实际上并非全部)……等等。 问题 有人可以解释差异吗?我应该用什么?什么是最现代的解决方案?(Distribute顺便说一句,我也很感谢有关向移植的一些指南,但这超出了问题的范围……)

10
在setup.py中包含非Python文件
如何setup.py包含不属于代码的文件?(具体来说,这是一个许可证文件,但也可以是其他任何东西。) 我希望能够控制文件的位置。在原始源文件夹中,该文件位于包的根目录中。(即与最上层处于同一级别__init__.py。)我希望它在安装软件包时准确地保持在该位置,而与操作系统无关。我怎么做?
200 python  distutils 


4
我如何让setuptools安装不在PyPI上的软件包?
我刚刚开始使用setuptools和virtualenv。我的软件包需要最新的python-gearman,该工具仅可从GitHub获得。PyPI上的python-gearman版本是一个旧版本。Github源代码与setuptools兼容,即具有setup.py等。是否可以通过一种方法来使setuptools下载并安装新版本,而不是在PyPI上寻找并安装旧版本? 仅供参考,新的python-gearman是http://github.com/mtai/python-gearman

4
setuptools与distutils:为什么distutils仍然是一回事?
Python就可以用于包装和说明项目工具混淆历史:这些包括distutils标准库中,distribute,distutils2,和setuptools(也许更多)。看来,distribute并distutils2投票赞成的停产setuptools,这让两个相互竞争的标准。 据我所知,setuptools提供了更多的选择(例如,声明依赖项,测试等)distutils,但是它没有包含在Python标准库中(还可以吗?)。 现在推荐《Python打包用户指南》 [ 1 ]: 使用setuptools定义的项目和创建源代码分发。 并说明: 尽管您可以将pure distutils用于许多项目,但它不支持定义对其他项目的依赖关系,并且缺少一些便捷实用程序来自动正确填充所提供的包元数据setuptools。在标准库之外,setuptools还为不同版本的Python提供了更一致的功能集,并且(与不同distutils)setuptools将进行更新,以在所有受支持的版本上生成即将到来的“ Metadata 2.0”标准格式。 即使对于确实选择使用的项目distutils,当pip直接从源代码(而不是从预构建的wheel文件安装)安装此类项目时,它实际上也会使用setuptools来构建您的项目。 但是,查看各种项目的setup.py文件可以发现,这似乎并不是一个实际的标准。许多软件包仍在使用,distutils而那些支持的软件包则setuptools经常setuptools与distutils回退导入结合使用: try: from setuptools import setup except ImportError: from distutils.core import setup 然后尝试找到一种写可以由setuptools和安装的安装程序的方法distutils。由于distutils不支持设置功能中的依赖关系,因此通常包括各种容易出错的依赖关系检查方式。 人们为什么还要付出额外的努力来支持distutils- setuptools标准库中没有的事实是唯一的原因吗?distutils编写仅支持setup.py文件的优点和缺点是什么setuptools?

4
使用cython和mingw进行编译会产生gcc:错误:无法识别的命令行选项'-mno-cygwin'
我正在尝试使用mingw(64位)在win 7 64位中使用cython编译python扩展。 我正在使用Python 2.6(Active Python 2.6.6)和足够的distutils.cfg文件(将mingw设置为编译器) 执行时 > C:\Python26\programas\Cython>python setup.py build_ext --inplace 我收到一条错误消息,说gcc没有-mno-cygwin选项: > C:\Python26\programas\Cython>python setup.py build_ext --inplace running build_ext skipping 'hello2.c' Cython extension (up-to-date) building 'hello2' extension C:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python26\include -IC:\Python26\PC -c hello2.c -o build\temp.win-amd64-2.6\Release\hello2.o gcc: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' …


5
将--user和--prefix错误与setup.py install结合使用
我试图将Python软件包安装到最近可以访问的系统中。我试图利用Python相对较新的每用户site-packages目录以及new选项--user。(该选项当前未公开,但是适用于Python 2.6+;您可以通过运行来查看帮助python setup.py install --help。) 当我尝试跑步 python setup.py install --user 在我下载的任何软件包上,总是出现以下错误: error: can't combine user with with prefix/exec_prefix/home or install_(plat)base 错误是非常令人费解,因为你可以看到,我不提供--prefix,--exec-prefix,--install-base,或--install-platbase标志作为命令行选项。我浪费了很多时间试图找出问题所在。我在下面记录我的答案,以期使其他一些可怜的人免于数小时的牛。

9
如何安装python distutils
我刚刚在VPS服务器上有一些空间(在ubuntu 8.04上运行),并且我试图在上面安装django。该服务器已安装python 2.5,但我猜它是非标准安装。当我运行Django的安装脚本时,我得到 amitoj@ninja:~/Django-1.2.1$ python setup.py install Traceback (most recent call last): File "setup.py", line 1, in <module> from distutils.core import setup ImportError: No module named distutils.core 我很沮丧 互联网上的所有文章都告诉我如何使用distutils安装模块。但是我如何获得distutils呢?谁能指出我指向distutils的存档?我查看了/usr/lib/local/python2.5、/usr/lib/python2.5等,并且没有发现distutils。
90 python  distutils 

6
MANIFEST.in在“ python setup.py install”上被忽略-没有安装数据文件?
这是我精简后的setup.py脚本,其中删除了非代码内容: #!/usr/bin/env python from distutils.core import setup from whyteboard.misc import meta setup( name = 'Whyteboard', version = meta.version, packages = ['whyteboard', 'whyteboard.gui', 'whyteboard.lib', 'whyteboard.lib.pubsub', 'whyteboard.lib.pubsub.core', 'whyteboard.lib.pubsub.utils', 'whyteboard.misc'], py_modules = ['whyteboard'], scripts = ['whyteboard.py'], ) MANIFEST.in: include *.txt include whyteboard-help/*.* recursive-include locale *.mo recursive-include images *.png 当我运行“ python setup.py install sdist”时,我得到一个带有“ …

5
是否有创建用于分发Python程序的Debian软件包的标准方法?
有关如何执行此操作的信息很多,但是由于“有多种方法可以给猫换皮”,因此涵盖该过程的所有教程/手册似乎都做出了与其他假设不同的某些假设。教程,我仍然没有设法掌握它。 到目前为止,这是我认为我了解的。 我的最终目标应该是创建“二进制” .deb软件包。由于所有Python程序都是这样的,因此此类软件包将独立于平台(32/64位)。 要创建“二进制”包,我首先需要创建一个源包。 要创建源包,我可以使用CDBS或debhelper。Debhelper是初学者的推荐方法。 创建源程序包的核心是DEBIAN在源目录中的目录中填充许多文件,以阐明需要在何处复制文件,它们受什么版权和许可方案,它们具有什么依赖性等。 如果Python源代码还附带distutils的脚本,则该步骤#4可在很大程度上自动化该dh_make命令。setup.py 现在我的问题是: 我对流程的理解正确吗?有什么我想念的东西,或者我弄错了吗? 步骤5确实让我更困惑:特别是对我来说最模糊的两点是: 如何编写setup.py安装独立程序的脚本? 编辑:通过独立的程序,我指的是节目旨在通过桌面用户使用(而不是一个模块,这是我理解的一样功能的集合被其他软件已经被导入后使用)。在我的特定情况下,我实际上需要两个这样的“程序”:主软件和单独的实用程序(实际上,另一个“程序”应与另一个程序放在同一程序包中)。 这种脚本对DEB包有什么特殊性?官方文档似乎只涉及RPM和Windows内容。 顺便说一句:这些是迄今为止我能找到的最佳信息来源。如果您有什么比这更好的,请分享!:) Ubuntu的Python打包指南 从python setup.py创建一个.deb包(它显示了步骤,但是对它们的解释不足以使我遵循) ShowMeDo视频,有关“从python程序中创建.deb软件包”(它似乎不是最新的,并且-如果我理解正确的话-它将产生供个人使用的软件包,没有依赖项,也没有签名的changelog等使其与Debian政策不兼容的关键数据)。


8
与setup.py和软件包共享软件包版本的正确方法是什么?
使用distutils,setuptools等,在setup.py以下位置指定软件包版本: # file: setup.py ... setup( name='foobar', version='1.0.0', # other attributes ) 我希望能够从包中访问相同的版本号: >>> import foobar >>> foobar.__version__ '1.0.0' 我可以将其添加__version__ = '1.0.0'到包的__init__.py中,但是我还想在包中包括其他导入,以创建包的简化接口: # file: __init__.py from foobar import foo from foobar.bar import Bar __version__ = '1.0.0' 和 # file: setup.py from foobar import __version__ ... setup( name='foobar', version=__version__, # other …

5
如何在python中递归复制目录并覆盖所有内容?
我正在尝试将/home/myUser/dir1/其所有内容(及其内容等)复制到/home/myuser/dir2/python中。此外,我希望副本覆盖中的所有内容dir2/。 它看起来像distutils.dir_util.copy_tree可能是这个职位的合适的工具,但不能肯定是否有什么更容易/更明显,使用这样一个简单的任务。 如果它是正确的工具,该如何使用?根据文档,它需要8个参数。我是否必须通过所有8个just src,dst和update,如果是,则通过(我是Python的新手)。 如果有更好的东西,有人可以给我一个例子,指出正确的方向吗?提前致谢!
70 python  copy  distutils 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.