微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无需在 PyPi 上上传即可分发我的 Python 包的推荐方法

如何解决无需在 PyPi 上上传即可分发我的 Python 包的推荐方法

我正在尝试使用 pip 从源安装本地包,但我的代码没有复制到 site-packages 文件夹中。相反,创建了一个文件夹,其中包含一个链接到我的 python 源代码路径的 json 文件。 这是预期的行为吗?与在开发模式下安装的区别(带 -e 标志)有什么区别。

我的工作路径如下:

├── setup.py
└── my_package
    ├── __init__.py
    └── module.py

我的 setup.py 文件如下所示:

import setuptools
setuptools.setup(name='my_package',version='0.0.1')
     

我正在打字:

python -m pip install .

然后当我在 python 中导入我的包时,它告诉我导入的包位于我的源代码文件夹中:

>>> import my_package
>>> my_package.__file__
path/to/my/desktop

将我的包分发给我的同事而不将其上传到 PyPi 的推荐方式是什么? 也有人可以向我解释可以使用 setuptools 生成的 .wheel、.tar.gz 和 .egg 文件间的区别及其用例吗?

解决方法

我找到了适合我的解决方案。 我使用命令从我的包中生成一个 .whl 文件

python -m pip wheel .

在包含 setup.py 的文件夹中。 这会生成一个 .whl 文件,我的同事可以使用该命令安装

python -m pip install .\my_package-0.0.1-py3-none-any.whl

压缩源代码(包括 setup.py)也可以,但看起来不太干净。

我还发现了为什么从没有 -e 标志的源代码安装没有将我的代码复制到我的“站点包”文件夹中。安装包会生成两个文件夹:“my_package-0.0.1.dist-info”文件夹和“my_module”文件夹。 我的 setup.py 脚本中缺少“包”kwarg,因此创建了版本信息文件夹,但未创建包含代码的文件夹。下面是一个更正的 setup.py

import setuptools
setuptools.setup(name="my_package",version='0.0.1',packages=["my_package"])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?