在Python软件包中包含* .pyd文件怎么打包保存?

Posted 日常分享Python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python软件包中包含* .pyd文件怎么打包保存?相关的知识,希望对你有一定的参考价值。

我有一个python模块module.pyd,一旦将其手动放置到python安装文件夹的站点程序包中,该文件就可以很好地工作。

当我将解决方案上传到云环境时,问题开始了,buildpack要求我将每个模块作为要安装的软件包传递pip install module。我用一个简单的__init__.py文件创建了一个文件夹,该文件仅导入了module.pyd的所有内容,因此我的模块被视为一个文件夹。

然后,我在这里阅读了http://peterdowns.com/posts/first-time-with-pypi.html如何上传我自己的模块,并且成功了,但是当我安装模块时,不会复制module.pyd文件。我也尝试通过存储库直接安装它,pip install git+repository但是发生了同样的事情。

我在这里阅读了https://docs.python.org/2/distutils/sourcedist.html#specifying-the-files-to-distribute,我可能不得不明确地说我想在清单中复制* .pyd文件。在文件中,我已经做到了,但是似乎还没用。

我目前正在使用python3.8

解答:

只需使用MANIFEST.in

recursive-include module *.pyd

这将包括目录中的所有pyd文件module

您的包裹布局应为以下内容:

module/
--- __init__.py
--- _module.pyd
--- module.py
MANIFEST.in
README.rst
setup.py

而且不要忘记添加include_package_data=Truesetup()setup.py为了使用强制MANIFEST.in建立车轮和Win32安装时(否则MANIFEST.in将只能用于源码包/ ZIP)。

的最小示例setup()

README_rst = ''
with open('README.rst', mode='r', encoding='utf-8') as fd:
    README_rst = fd.read()

setup(
    name='module',
    version='0.0.1',
    description='Cool short description',
    author='Author',
    author_email='author@mail.com',
    url='repo.com',
    packages=['module'],
    long_description=README_rst,
    include_package_data=True,
    classifiers=[
        # Trove classifiers
        # The full list is here: https://pypi.python.org/pypi?%3Aaction=list_classifiers
        'Development Status :: 3 - Alpha',
    ]
)

欢迎指正,和自己的解答评论区留言,非常感谢你们的帮助

感谢各位大佬的观看,小编这边准备了一个既能学习交流的也能接单的qq群聊 :222020937 欢迎加入《广告勿加,不然你做啥啥不赚钱》最后祝大家技术能力能越来越好收入越来越多

以上是关于在Python软件包中包含* .pyd文件怎么打包保存?的主要内容,如果未能解决你的问题,请参考以下文章

Python程序加密打包

通过Cython打包py文件,生成包含pyd的wheel(.whl)

浅谈一下pyd文件的逆向

Python setup.py 在 egg 中包含 .json 文件

Python 怎么调用 pyd文件?

python 安装whl文件