我想在pywin32
setup.py
作为条件Python依赖项添加到platform_system == Windows
中
有人可以给我提示如何使其工作吗?
探索stackoverflow之后,尚未找到python2.7的答案。
我正在使用Python 2.7,setuptools 28.x.x,pip19.x.x。 Egg-info是自动构建的。
from setuptools import setup, find_packages
import platform
platform_system = platform.system()
setup(
name=xxx,
version=xxx,
packages=find_packages(),
include_package_data=True,
install_requires=[
'matplotlib',
],
extras_require={
'platform_system=="Windows"': [
'pywin32'
]
},
entry_points='''
[console_scripts]
xx:xx
''',
)
我不了解extras_require
中的键如何工作。 platform_system
会在前面引用platform_system
的定义吗?
我也尝试过:
from setuptools import setup, find_packages
import platform
setup(
xxx
install_requires=[
'matplotlib',
'pywin32;platform_system=="Windows"',
],
)
但这仅适用于python_version>=3.4
另外,看来https://www.python.org/dev/peps/pep-0508/对我不起作用。
答案 0 :(得分:0)
检查Python os模块
os.name
导入的操作系统相关模块的名称。当前已注册以下名称:'posix','nt','os2','ce','java','riscos'。
和 nt 用于Windows操作系统。
import os
if os.name == 'nt':
# Windows-specific code here...
您也可以选中sys.platform。
sys.platform
例如,该字符串包含一个平台标识符,该标识符可用于将特定于平台的组件附加到sys.path。
import sys
if sys.platform.startswith('win32'):
# Windows-specific code here...
已编辑: 根据您的问题,如果操作系统是Windows,则要安装pywin32。 我认为这段代码将为您提供帮助:
import sys
INSTALL_REQUIRES = [
# ...
]
EXTRAS_REQUIRE = {
# ...
}
if sys.platform.startswith('win32'):
INSTALL_REQUIRES.append("pywin32")
setup(
# ...
install_requires=INSTALL_REQUIRES,
extras_require=EXTRAS_REQUIRE,
)