我正在构建一个需要pywin32的python包。
将pywin32添加为依赖项并不能无缝工作,因为它有一个安装后脚本,用户必须自己运行该脚本。
将pypiwin32添加为依赖项不起作用,因为我的包不能很好地处理其他需要pywin32的包
我试着同时需要这两个,但是事实证明pyWi32和pypyWi32不能在同一个Python安装上共存。
有没有办法将pywin32或pypiwin32指定为依赖项?或者其他解决办法?

最佳答案

adding pip install pywin32 as a post-install script可以工作,但从安装程序中删除install_requires命令。要解决这个问题,add do_egg_install(self) rather than run in the classes

from setuptools import setup
from setuptools.command.develop import develop as _develop
from setuptools.command.install import install as _install
from subprocess import check_call

# PostDevelopCommand
class develop(_develop):
    """Post-installation for development mode."""
    def run(self):
        check_call("pip install pywin32")
        develop.do_egg_install(self)

# PostInstallCommand
class install(_install):
    """Post-installation for installation mode."""
    def run(self):
        check_call("pip install pywin32")
        develop.do_egg_install(self)

并将cmdclass参数插入setup.py中的setup()函数:
 setup(
     ...

    cmdclass={
        'develop': develop,
        'install': install,
    },

    ...
)

关于python - 具有pywin32或pypiwin32依赖关系的Python包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46542657/

10-12 20:11