【发布时间】:2012-08-04 22:06:42
【问题描述】:
好的,我想创建一个包含 C 模块的预构建 Python 包。也就是说,最后我想要一个 tarball,其中包含使用我的模块所需的所有内容,并且可以 pip 安装,即最后我可以执行以下操作:
pip install whatevertarballgetsproduced.tar.gz
并且图书馆将可用。它还需要对虚拟环境友好。
我当前的目录结构是:
project/
+ setup.py
+ mylibrary/
+ __init__.py
+ mylibrary.py
+ _mylibrary.so
+ README
即编译后的C库在_mylibrary.so。派生此文件的 C 源代码不 包含在 tarball 中。我也在 OSX (Lion) 上这样做。 mylibrary.py 仅包含 C 库代码的 Python 包装器。
我如何实现这一目标?我想过做一个python setup.py bdist,但这并不是我真正想要的(除非我遗漏了一些无法通过 pip 安装的 tarball 的东西)。
为了完成,我的 setup.py 看起来像:
from setuptools import setup
setup(
name='mylibrary_py3mac',
version='0.1.1',
description='My library which is tied to OSX & Python 3',
long_description=open('README').read(),
packages=['mylibrary'],
classifiers = [
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Operating System :: MacOS :: MacOS X',
'Programming Language :: Python :: 3',
],
)
请注意,我不打算公开分发此压缩包,它仅用于内部部署目的(因此我不关心它是否被预编译或仅绑定到 OSX)。
【问题讨论】:
标签: python macos python-3.x setuptools