如何创建可使用pip安装的可共享python分发软件包?

时间:2019-06-19 06:32:55

标签: python

我想与同事共享python代码,这样他将获得分发软件包,并且可以使用pip将该软件包安装在他/她的计算机上。

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

这是否可能像我给的.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

回溯(最近通话最近一次):

文件“”,位于

的第1行

ImportError:没有名为dokr的模块

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

但是没有这样的文件夹,它本身具有python文件dokr,我想将其导入其他python文件中。在导入过程中显示错误。

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

2 个答案:

答案 0 :(得分:0)

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

您可以清楚地显示出什么错误吗? 但是,您可以查看以下链接!  :Packaging Python Projects

希望这会有所帮助!

答案 1 :(得分:0)

幸运的是发现了问题的原因。

我没有在设置函数中传递参数(软件包,其中包含要包含的软件包列表),因此不能复制软件包。

以下文章和令人敬畏的答案有助于解决问题。

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

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

我感谢来到这里的每个人的帮助。 :)