Tag: distutils

在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'])], […]

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回购?

如何使用简单的安装后脚本来扩展distutils?

模块和程序安装后,我需要运行一个简单的脚本。 我在查找关于如何做到这一点的简单文档方面遇到了一些麻烦。 它看起来像我需要从distutils.command.installinheritance,重写一些方法,并将此对象添加到安装脚本。 细节虽然有点朦胧,对于这样一个简单的钩子来说,这似乎是一个很大的努力。 有谁知道一个简单的方法来做到这一点?

让distutils在正确的位置寻找numpy头文件

在我的安装中,numpy的arrayobject.h位于…/site-packages/numpy/core/include/numpy/arrayobject.h 。 我写了一个简单的使用numpy的Cython脚本: cimport numpy as np def say_hello_to(name): print("Hello %s!" % name) 我也有以下distutils setup.py (从Cython用户指南复制): from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext ext_modules = [Extension("hello", ["hello.pyx"])] setup( name = 'Hello world app', cmdclass = {'build_ext': build_ext}, ext_modules = ext_modules ) 当我尝试使用python setup.py build_ext –inplace构build时,Cython尝试执行以下操作: gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd […]

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

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

与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失败。 […]

如何告诉distutils使用gcc?

我想用Cython包装一个包含C ++和OpenMP代码的testing项目,并通过setup.py文件使用distutils构build它。 我的文件的内容如下所示: from distutils.core import setup from distutils.extension import Extension from Cython.Build import cythonize from Cython.Distutils import build_ext modules = [Extension("Interface", ["Interface.pyx", "Parallel.cpp"], language = "c++", extra_compile_args=["-fopenmp"], extra_link_args=["-fopenmp"])] for e in modules: e.cython_directives = {"embedsignature" : True} setup(name="Interface", cmdclass={"build_ext": build_ext}, ext_modules=modules) -fopenmp标志与gcc一起使用来编译和链接到OpenMP。 但是,如果我只是援引 cls ~/workspace/CythonOpenMP/src $ python3 setup.py build 这个标志不被识别,因为编译器是叮当声的: running build running build_ext […]

如何在使用cx_freeze时捆绑其他文件?

我在Windows系统上使用Python 2.6和cx_Freeze 4.1.2。 我创build了setup.py来构build我的可执行文件,一切正常。 当cx_Freeze运行时,它将所有内容移动到构build目录。 我有一些其他的文件,我想包括在我的build立目录。 我怎样才能做到这一点? 这是我的结构。 src\ setup.py janitor.py README.txt CHNAGELOG.txt helpers\ uncompress\ unRAR.exe unzip.exe 这是我的片段: build立 ( name='Janitor', version='1.0', description='Janitor', author='John Doe', author_email='john.doe@gmail.com', url='http://www.this-page-intentionally-left-blank.org/', data_files = [ ('helpers\uncompress', ['helpers\uncompress\unzip.exe']), ('helpers\uncompress', ['helpers\uncompress\unRAR.exe']), ('', ['README.txt']) ], executables = [ Executable\ ( 'janitor.py', #initScript ) ] ) 我似乎无法得到这个工作。 我需要一个MANIFEST.in文件吗?

如何在没有setup.py的项目中运行tox?

我想用tox来运行我的unittests两个virtualenvs,因为我的应用程序必须支持2个不同的Python版本。 我的问题是tox需要一个setup.py ,但我没有,因为我的应用程序不是一个模块,并有自己的安装程序。 现在我不想为了使用setup.py而自动执行安装过程,我只想运行我的unit testing,而不必编写setup.py 。 那可能吗? 或者,我怎么能写一个“空”setup.py,什么都不做? 你能指出我对这个主题的一些文档( distutils文档解释了如何写一个有意义的setup.py ,而不是一个空的)?