शामिल हैं, मैं विंडोज़ के लिए प्लेटफार्म विशिष्ट बाइनरी वितरण पैकेज जेनरेट करने की कोशिश कर रहा हूं, लेकिन python setup.py bdist_wheel
सार्वभौमिक फ़ाइल नाम उत्पन्न करता है। प्लेटफॉर्म विशिष्ट नामों के साथ पहियों को पाने के लिए मुझे अपने setup.py में बदलने की आवश्यकता है या अन्यथा? जब से मैं setuptools इकट्ठा करता हूं, तब से यह पहचानना चाहिए कि जब पैकेज सार्वभौमिक नहीं होगा, लेकिन यह मेरे लिए काम नहीं कर रहा है।व्हील नाम प्लेटफ़ॉर्म स्वतंत्र हैं, भले ही मेरे पैकेज में संकलित लाइब्रेरी
जिस परियोजना पर मैं काम कर रहा हूं वह सेमीकेक और मिंगव w64 का उपयोग करके पुस्तकालयों के कई रूपों को संकलित करता है। ये संकलित पुस्तकालय निश्चित रूप से 32/64 बिट विशिष्ट हैं। व्यक्तिगत वितरण बनाने के लिए मैं लक्ष्य प्लेटफॉर्म के लिए वर्चुअलनव बनाता हूं जिससे मैं पुस्तकालयों को संकलित करता हूं। संकलित पुस्तकालयों को तब पहिया के लिए पाइथन पैकेज में कॉपी किया जाता है।
यहां मेरा 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 '। जब पीपी के माध्यम से स्थापित किया जाता है तो पैकेज प्लेटफ़ॉर्म के लिए अपेक्षाकृत संकुल कार्य करता है, लेकिन निश्चित रूप से वैकल्पिक प्लेटफ़ॉर्म के लिए विफल रहता है। आखिरकार मैं पाइथन 2.7, 3.4, 3.5 दोनों विंडोज़ 32 & 64 बिट और लिनक्स 64 बिट पर समर्थन करना चाहता हूं।
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=''
)