9

我有一个 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文件。在文件中,我已经完成了,但它似乎还没有工作。

我目前使用 python 2.7.10

我是python新手,所以我很感谢你们的帮助

4

1 回答 1

8

只需使用MANIFEST.in

recursive-include module *.pyd

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

您的包布局应如下所示:

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

并且不要忘记添加include_package_data=Truesetup()setup.py的以便MANIFEST.in在构建轮子和 win32 安装程序时强制使用(否则MANIFEST.in将仅用于源 tarball/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',
    ]
)
于 2016-10-03T02:00:11.620 回答