草庐IT

distutils_hack

全部标签

python - 使用 distutils 构建 ctypes -"based"C 库

关注thisrecommendation,我编写了一个原生C扩展库来通过ctypes优化Python模块的一部分。我选择了ctypes而不是编写CPython-native库,因为它更快更容易(只有几个函数,里面有所有紧密的循环)。我现在遇到了一个障碍。如果我希望使用distutils轻松安装我的工作,使用pythonsetup.pyinstall,然后distutils需要能够构建我的共享库并安装它(大概是/usr/lib/myproject)。但是,这不是Python扩展模块,据我所知,distutils无法做到这一点。我找到了一些其他有此问题的人的引用资料:Someoneonnu

python - 自定义 distutils 命令

我有一个名为“example”的库,我将它安装到我的全局站点包目录中。但是,我希望能够安装两个版本,一个用于生产,一个用于测试(我有一个Web应用程序和其他以这种方式进行版本控制的东西)。有没有办法指定,比如“pythonsetup.pystage”,它不仅可以将不同的egg安装到站点包中,还可以将模块从“example”重命名为“example_stage”或类似的名称?如果distutils不能做到这一点,有没有其他工具可以做到? 最佳答案 这可以通过在setup.py中子类化distutils.core.Command使用di

Python distutils 错误 : "[directory]... doesn' t exist or not a regular file"

让我们采用以下项目布局:$ls-R..:packagesetup.py./package:__init__.pydirfile.datmodule.py./package/dir:tool1.dattool2.datsetup.py的内容如下:$catsetup.pyfromdistutils.coreimportsetupsetup(name='pyproj',version='0.1',packages=['package',],package_data={'package':['*','dir/*',],},)如您所见,我想在package/和package/dir/目录中包含所

Python distutils,如何获得将要使用的编译器?

例如,我可以使用pythonsetup.pybuild--compiler=msvc或pythonsetup.pybuild--compiler=mingw32或只是pythonsetup.pybuild,在这种情况下,将使用默认编译器(例如,bcpp)。如何在setup.py中获取编译器名称(例如分别为msvc、mingw32和bcpp)?UPD.:我不需要默认编译器,我需要的是实际上将要使用的编译器,不一定是默认编译器。到目前为止,我还没有找到比解析sys.argv以查看是否有--compiler...字符串更好的方法。 最佳答案

python - 使用 distutils/setuptools 执行 Python 脚本安装后

我正在尝试向Pythondistutils添加一个安装后任务,如Howtoextenddistutilswithasimplepostinstallscript?中所述。.该任务应该在已安装的lib目录中执行Python脚本。此脚本会生成已安装包所需的其他Python模块。我的第一次尝试如下:fromdistutils.coreimportsetupfromdistutils.command.installimportinstallclasspost_install(install):defrun(self):install.run(self)fromsubprocessimportc

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

安装模块和程序后,我需要运行一个简单的脚本。我很难找到有关如何执行此操作的直接文档。看起来我需要从distutils.command.install继承,覆盖一些方法并将这个对象添加到安装脚本中。虽然细节有点模糊,但对于这样一个简单的钩子(Hook)来说似乎需要付出很多努力。有谁知道一个简单的方法来做到这一点? 最佳答案 我在distutils源代码中挖掘了一天,以了解足够多的知识来制作一堆自定义命令。它不漂亮,但确实有效。importdistutils.corefromdistutils.command.installimport

python - 使 Python 中的 distutils 自动查找包

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

python - 在 Python 中打包旧版 Fortran。可以使用 setuptools 和 numpy.distutils 吗?

我正在尝试为我所在领域的一些流行的Fortran代码制作python包分发。我希望它使用带有setup.py文件的最标准方法。相关问题对学习有帮助howtowrapFortranextensions.在使用这种方法时,我注意到在混合setuptools和numpy.distutils时会出现一些令人困惑的行为。将两者混合是不好的做法吗?截至2015年,似乎最好尽可能使用setuptools。但是,我想以与numpy.兼容的方式构建Fortran扩展,所以我想从numpy.distutils来获取Extension和setup。我正在使用以下基本方法:fromsetuptools.com

python - 如何告诉 distutils 使用 gcc?

我想用Cython包装一个包含C++和OpenMP代码的测试项目,并通过setup.py文件用distutils构建它。我的文件内容如下所示:fromdistutils.coreimportsetupfromdistutils.extensionimportExtensionfromCython.BuildimportcythonizefromCython.Distutilsimportbuild_extmodules=[Extension("Interface",["Interface.pyx","Parallel.cpp"],language="c++",extra_compile

python - ImportError:没有名为 Cython.Distutils 的模块

我在尝试使用其setup.py文件安装Python库zenlib时遇到了一个奇怪的问题。当我运行setup.py文件时,我得到一个导入错误,说ImportError:NomodulenamedCython.Distutils`但我确实有这样的模块,我可以在python命令行中导入它而没​​有任何麻烦。为什么我会收到此导入错误?我认为问题可能与我使用EnthoughtPythonDistribution的事实有关。,我预先安装了它,而不是使用Ubuntu12.04附带的Python2.7。更多背景:这正是我尝试运行setup.py时得到的结果:enwe101@enwe101-PCL:~/