製作蛋時(使用python setup.py bdist_egg
),您可以強制setuptools/distribute構建平臺特定的蛋。
from setuptools import setup
import os
# Monkey-patch Distribution so it always claims to be platform-specific.
from distutils.core import Distribution
Distribution.has_ext_modules = lambda *args, **kwargs: True
requirements = ['generic-foo', 'generic-bar']
if os.getenv('WINDOWS_BUILD'):
requirements.extend(['a-windows-only-requirement'])
setup(
name="...",
install_requires=requirements
)
然後,您可以簡單地做:
# Force a windows build
$ WINDOWS_BUILD=y python setup.py bdist_egg -p win32
# Do a linux build -- you may not need to specify -p if you're happy
# with your current linux architecture.
$ python setup.py bdist_egg -p linux-i686
大概是通過這樣的邏輯產生依賴性的名單將在我的雞蛋元數據出爐,這意味着如果我*建* Windows上的雞蛋那麼它將有Windows的依賴,然後將失敗在那些依賴關係不可用的Linux上安裝? –
我不知道它是如何工作的。我認爲,因爲''設置。py''在安裝時執行,依賴關係將在安裝時生成。但是這應該很容易測試。 – codeape
請注意,平臺檢查應該是「if sys.platform =='win32''',否則它會通過Mac OS X(* darwin *),請參閱http://stackoverflow.com/questions/2144748/is-它是安全的使用sys平臺win32檢查64位python – kraymer