Tag: setuptools

如何在install_requires中指定版本范围(setuptools,distribute)

我想要一个包来取决于特定的版本范围,例如>= 0.5.0, < 0.7.0 。 是否有可能在install_requires选项,如果是这样,它应该是什么?

为什么“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'])], […]

pip忽略setup.py中的dependency_links

我在我的setup.py中有dependency_links: … dependency_links = ['http://github.com/robot-republic/python-s3/tarball/master.tar.gz#egg=python-s3'], … 但它不起作用。 但是,install_requires工作正常。 也许有另一种方法来设置的setup.py所需的git回购?

使用Python setuptools安装后的脚本

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

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 […]

setuptools,distribution和pip如何相互关联?

我一直在通过“Learn Python The Hard Way”(第二版)一书来教授自己的Python。 在练习46中,它告诉我阅读Pip,Distribute和其他一些软件包。 pip的文档足够清晰。 它允许我安装/卸载和升级软件包。 阅读分发的文档,它基本上似乎做同样的事情: 轻松下载,构build,安装,升级和卸载Python软件包 点子和分布之间有什么区别,它们是如何相互关联的?

如何将静态文件包含到setuptools – python包中

包含静态文件是不可能的! 我尝试了在教程和文档中find的所有东西,但都是徒劳的… 我想包括./static/data.txt,有我的代码: # setup.py import os,glob from setuptools import setup,find_packages setup( name = "PotatoProject", version = "0.1.1", author = "Master Splinter", author_email = "splinter@initech.com", description = ("The potatoproject!"), url = 'http://www.google.com', license = "BSD", # adding packages packages=find_packages('src'), package_dir = {'':'src'}, # trying to add files… include_package_data = True, package_data = { '': ['*.txt'], […]

在Python中打包遗留的FORTRAN。 可以使用`setuptools`和`numpy.distutils`吗?

我正在尝试为我的领域中的一些stream行的Fortran代码做一个python包分发。 我希望它使用setup.py文件最标准的方法。 相关问题有助于学习如何打包Fortran扩展 。 当使用这种方法时,我注意到混合setuptools和numpy.distutils时有一些混淆的行为。 混合两者是不好的做法? 截至2015年,似乎最好尽可能使用setuptools 。 不过,我想用与numpy.兼容的方式构buildFortran扩展numpy. 所以我想从numpy.distutils导入来获得Extension和setup 。 我正在使用以下基本方法: from setuptools.command.develop import develop from numpy.distutils.core import Extension, setup ext_modules=[Extension("my_package.fortran_mod", sources=['src/fortran_mod.f'])] class MyDevelop(develop): def run(self): my_script() develop.run(self) setup( … ext_modules=ext_modules, cmdclass={'develop':MyDevelop}) 这似乎工作,但我有问题。 混合setuptools和numpy.distribute通常是一个好的做法吗? 我input的订单是否重要? 我应该总是先导入setuptools ? 有没有官方的最新教程打包numpy扩展? 也许甚至有一些讨论Fortran扩展? – 一些链接 http://www.fortran90.org/src/best-practices.html#interfacing-with-python

与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中,但是我还想在我的包中添加额外的导入来创build一个简化的包接口: # 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 attributes ) 但是,如果导入其他尚未安装的软件包,这些额外的导入操作可能会导致安装foobar失败。 […]

做python项目需要一个MANIFEST.in,它应该是什么?

“Python Distribute”指南(位于python-distribute.org,但注册已失效)告诉我要包含doc/txt文件,而.py文件不包含在MANIFEST.in文件中 源代码文档告诉我,只有sdist使用MANIFEST.in并且只包含您指定的文件并包含.py文件。 它也告诉我使用: python setup.py sdist –manifest-only生成一个MANIFEST ,但是python告诉我这个不存在 我感谢这些是从不同版本的Python和分配系统是在一个完整的混乱,但假设我使用Python 3和setuptools (新的包括分发,但现在叫setuptools,而不是旧的setuptools不赞成分发工具只有被重新分配和分配才能重新命名为setuptools …..) 我正在遵循“标准”文件夹结构和setup.py文件, 我需要一个MANIFEST.in吗? 应该在里面呢? 什么时候将所有这些不同的包装系统和方法制成一个简单的过程?