【问题标题】:How to create a shareable python distribution package that can be installed using pip?如何创建可以使用 pip 安装的可共享 python 分发包?
【发布时间】:2019-11-01 19:45:33
【问题描述】:

我想与我的同事分享我的 python 代码,他将获得分发包并使用 pip 可以将包安装在他/她的机器上。

我创建了我认为可以通过 pip install 命令直接安装的 .whl 文件。 虽然安装成功,但是当我开始使用它时显示错误。

这是否可能像我提供 .whl 文件并且通过 pip install 命令安装后可以在其他机器上使用?

我正在尝试在 Windows 机器上执行此操作。

这里是 setup.py :

import setuptools
with open("README.md", "r") as fh:
    long_description = fh.read()
setuptools.setup(
     name='dokr',  
     version='0.1',
     scripts=['dokr'] ,
     author="Debapritam Chakra",
     author_email="debapritam22@gmail.com",
     description="A Sample package",
     long_description=long_description,
   long_description_content_type="text/markdown",
     url="",
     packages=setuptools.find_packages(),
     classifiers=[
         "Programming Language :: Python :: 2.7",
         "",
         "Operating System :: OS Independent",
     ],
 )

我尝试创建的包是 dokr,并且在同一目录中有名为 dokr 的文件,其内容如下所示。

#!/usr/bin/env python
echo "hey there, this is a pip package"

使用命令python setup.py sdist bdist_wheel生成分发包。

为了在我的机器上安装包,我使用了命令:

python -m pip install dist/name-of-wheel-file.whl

它显示它已成功安装(甚至使用 pip 列表检查)。 当我尝试将包导入为时抛出错误

导入 dokr

Traceback(最近一次调用最后一次):

文件“”,第 1 行,在

ImportError: 没有名为 dokr 的模块

补充观察: 我机器上的 Python 安装在 C:\Python27 下。 使用 pip 从 whl 文件安装软件包后,我可以看到在路径下创建了一个目录:C:\Python27\Lib\site-packages\ 命名为 dokr-0.1.dist-info。对于哪个 pip 列表显示该模块存在。

但是没有这样的文件夹包含 python 文件 dokr 本身,我想将它导入到其他 python 文件中。导入时显示错误。

我是 python 和这个平台的新手。任何线索都会有所帮助。

【问题讨论】:

  • 错误是什么?
  • 最好告诉你发生了什么错误和你的 setup.py 文件
  • 假设包的名字是 wb2interface。 ImportError: No module named wb2interface 我使用命令 pip list 检查是否已安装。
  • @DebapritamChakra 您应该将评论中提到的这个错误添加到您的帖子中,cmets 中提到的这个错误可能很难找到,因为人们首先看到的是您的帖子而不是 cmets。
  • @AJS 感谢您的评论。现在我已将其添加到帖子中。

标签: python


【解决方案1】:

当然,你可以创建一个python分发包。

你能清楚地说明错误是什么吗? 但是,您可以查看以下链接! :Packaging Python Projects

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    幸运的是找到了问题的原因。

    我没有在 setup 函数中传递参数(packages 包含要包含的包列表),无法复制这些包。

    下面的文章和一个很棒的答案帮助解决了这个问题。

    https://setuptools.readthedocs.io/en/latest/setuptools.html#developer-s-guide

    pip install . creates only the dist-info not the package

    我感谢所有来这里提供帮助的人。 :)

    【讨论】:

      猜你喜欢
      • 2015-06-28
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 2014-07-31
      相关资源
      最近更新 更多