Tag: setup.py

在Python中使distutils自动查找包

当在Python的distutils中的setup.py中描述python包时,是否有办法让它自动获取每个包含__init__.py目录,并将其作为子包装? 即如果结构是: mypackage/__init__.py mypackage/a/__init__.py mypackage/b/__init__.py 我想避免这样做: packages = ['mypackage', 'mypackage.a', 'mypackage.b'] 而只是做: packages = ['mypackage'] 并让它自动find像a和b类a东西,因为它们有一个init文件。 谢谢。

为什么“python setup.py sdist”在项目根目录下创build不需要的“PROJECT-egg.info”?

当我跑步 python setup.py sdist 它在我的./dist目录下创build一个sdist。 这包括我的“dist”文件夹中的“PROJECT-egg.info”文件,我不使用它,但它不会伤害到我,所以我忽略它。 我的问题是为什么它也会在我的项目根目录中创build一个“PROJECT-egg.info”文件夹? 我可以让它停止创build这个? 如果不是,我可以在创buildsdist后立即删除它吗? 我正在使用从setuptools导入的“设置”function。 WindowsXP,Python2.7,Setuptools 0.6c11,分发0.6.14。 我的设置configuration如下所示: {'author': 'Jonathan Hartley', 'author_email': 'tartley@tartley.com', 'classifiers': ['Development Status :: 1 – Planning', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: Microsoft :: Windows', 'Programming Language :: Python :: 2.7'], 'console': [{'script': 'demo.py'}], 'data_files': [('Microsoft.VC90.CRT', ['..\\lib\\Microsoft.VC90.CRT\\Microsoft.VC90.CRT.manifest', '..\\lib\\Microsoft.VC90.CRT\\msvcr90.dll'])], […]

使用Python setuptools安装后的脚本

是否可以指定安装后的Python脚本文件作为setuptools setup.py文件的一部分,以便用户可以运行此命令: python setup.py install 在本地项目文件存档或 pip install <name> 为一个PyPI项目和脚本将运行在标准setuptools安装完成? 我正在寻找执行安装后任务,可以编写在一个Python脚本文件(例如,提供一个自定义的安装后的消息给用户,从另一个远程源库拉额外的数据文件)。 几年前我遇到了这个解决这个问题的答案,听起来好像当时的共识是你需要创build一个install子命令。 如果情况仍然如此,那么是否有人可以提供一个如何执行此操作的示例,以便用户不必input第二个命令来运行脚本?

entry_points / console_scripts和setup.py中的脚本之间的区别?

基本上有两种方法通过setup.py将Python控制台脚本安装到我的path中: setup( … entry_points = { 'console_scripts': [ 'foo = package.module:func', ], } ) 和 setup( … scripts = [ 'scripts/myscript.sh' ] ) 有什么区别? 我看到第一种方法允许我为脚本select好的,特定的名称,但是还有其他的区别吗? 不同的原始目的,兼容性(setuptools,distutils,…?),用法,…? 我很困惑,一个精心制作的答复可以帮助我(也可能是其他人)正确理解这一切。 更新:因为我问了这个问题, PyPA 在这个话题上发表了这些很酷的文档 。

Python包装:数据文件正确地放在tar.gz文件中,但是没有安装到虚拟环境中

我无法正确安装项目package_fiddler到我的虚拟环境。 我发现MANIFEST.in负责将non.py文件放在Package_fiddler-0.0.0.tar.gz , 这个文件是在执行python setup.py sdist时候生成的。 然后我做了: (virt_envir)$ pip install dist/Package_fiddler-0.0.0.tar.gz 但是,这并没有安装数据文件,也没有安装到/home/username/.virtualenvs/virt_envir/local/lib/python2.7/site-packages 。 我已经尝试了许多configuration参数package_data , include_package_data和data_files但我似乎每次都使用了错误的configuration。 package_data和/或include_package_data和/或data_files哪个configuration会正确地将package_fiddler安装到我的虚拟环境中? 项目树 . ├── MANIFEST.in ├── package_fiddler │ ├── data │ │ ├── example.html │ │ └── stylesheets │ │ └── example.css │ └── __init__.py ├── README.rst └── setup.py setup.py from setuptools import setup setup( name='Package_fiddler', entry_points={ 'console_scripts': ['package_fiddler […]

我该如何重写setup.py默认使用的编译器(gcc)标志?

我知道setup.py使用了与用于构buildpython相同的CFLAGS。 我有一个C扩展我们的是segfaulting。 我需要在不使用 -O2 情况下构build它,因为-O2正在优化某些值和代码,以便核心文件不足以解决问题。 我只需要修改setup.py,以便不使用-O2 。 我已经阅读distutils文档,特别是distutils.ccompiler和distutils.unixcompiler ,看看如何添加标志和库和包括,但不是如何修改默认的gcc标志。 具体来说,这是针对Python 2.5.1上的一个遗留产品,带有一些后端(Fedora 8,是的,我知道…)。 不,我不能改变操作系统或Python版本,我不能,没有很大的问题,重新编译python。 我只需要为其中一个环境是唯一的一个客户的客户build立一个C扩展。

“python setup.py install”和“pip install”之间的区别

我有一个外部软件包,我想从tar文件安装到我的python virtualenv。 什么是安装软件包的最佳方式? 我发现了两种方法可以做到这一点:1)解压缩tar文件,然后在提取的目录中运行“python setup.py install”。 2) https://pip.pypa.io/en/stable/reference/pip_install/#examples中示例#7的“pip install packagename.tar.gz” 这两种方式是否有区别?

distutils:如何将用户定义的parameter passing给setup.py?

请提示我如何从命令行和setup.cfgconfiguration文件传递一个用户定义的参数,以distutils的setup.py脚本。 我想写一个setup.py脚本,它接受我的包特定的参数。 例如: python setup.py install -foo myfoo 谢谢, Mher

何时在setup.py中使用pip需求文件与install_requires?

我用virtualenv使用pip来打包和安装一些Python库。 我会想象我正在做的是一个很常见的情况。 我是几个库的维护者,我可以明确地指定依赖关系。 我的一些库依赖于具有传递依赖关系的第三方库,我无法控制它。 我想要实现的是在我的一个库上pip install来下载/安装所有的上游依赖项。 我在pip文档中苦苦挣扎的是if / how 需要的文件是否可以自己做,或者如果他们真的只是使用install_requires一个补充。 我是否会在所有库中使用install_requires来指定依赖项和版本范围,然后仅使用需求文件来解决冲突和/或冻结生产版本? 让我们假装我生活在一个虚构的世界(我知道,我知道),我的上游依赖是直接的,并保证永不冲突或倒退兼容性。 我会被迫使用一个点的需求文件或只是让pip / setuptools /分发安装一切基于install_requires ? 在这里有很多类似的问题,但是我找不到什么时候使用这个或那个的基础,或者和谐地使用它们。

python setup.py卸载

我已经安装了python setup.py install一个python包。 我如何卸载它?