tha*_*ren 7 python setuptools python-wheel
我正在尝试为Windows生成特定于平台的二进制分发包,但会python setup.py bdist_wheel生成通用文件名.我需要在setup.py或其他方面更改以获得具有平台特定名称的轮子?从我收集的setuptools应该认识到什么时候包不会普遍,但这对我不起作用.
我正在开发的项目使用cmake和mingw w64编译了几个库的变体.这些编译库当然是32/64位特定的.为了创建单独的发行版,我为目标平台创建了一个virtualenv,我可以从中编译库.然后将编译好的库复制到python包中以进行轮转.
这是我的setup.py.pyfvs_files是要包含的已编译的'*.pyd'文件的列表.这会生成名为'pyfvs-0.0.1a0-py27-none-any.whl'的轮子,我希望它是'pyfvs-0.0.1a0-py27-none-win32.whl'和'pyfvs-0.0.1a0-py27 -none-win_amd64.whl".通过pip安装时,软件包的功能与目标平台的预期一致,但对于备用平台来说当然是失败的.最终,我想在Windows 32和64位以及linux 64位上支持Python 2.7,3.4,3.5.
import os
from glob import glob
from setuptools import setup
from setuptools.dist import Distribution
# TODO: Get the version from the git tag and or revision.
version = '0.0.1a0'
if os.name=='nt':
so_ext = 'pyd'
else:
so_ext = 'so'
pyfvs_files = glob('pyfvs/*.{}'.format(so_ext))
pyfvs_files.extend(['pyfvs/pyfvs.cfg',])
description = open('./README.txt').readline().strip()
long_desc = open('./README.txt').read().strip()
class BinaryDistribution(Distribution):
def is_pure(self):
return False
setup(
name='pyfvs'
, version=version
, description=description
, long_description=long_desc
, url=''
, author=""
, author_email=""
, packages=['pyfvs',]
, include_package_data=True
, distclass=BinaryDistribution
, data_files = [
('pyfvs',pyfvs_files)
, ('pyfvs/docs',glob('pyfvs/docs/*'))
, ('pyfvs/examples',glob('pyfvs/examples/*'))
, ('pyfvs/test',glob('pyfvs/test/*'))
]
, entry_points={
'console_scripts': [
'fvs=pyfvs.__main__:main'
]
}
, classifiers=[
'Development Status :: 3 - Alpha'
, 'Environment :: Console'
, 'Intended Audience :: Developers'
, 'Intended Audience :: End Users/Desktop'
, 'Intended Audience :: Science/Research'
, 'Natural Language :: English'
, 'Programming Language :: Python'
, 'Programming Language :: Fortran'
]
, keywords=''
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |