【发布时间】:2022-02-14 05:17:43
【问题描述】:
我想学习如何让我自己和我的同事可以使用我自己的功能集合。经过一番阅读,我决定制作一个python package,将其放在github 上,并使用pip install git+https:// 将其提供给我的同事。顺便说一句,我们使用anaconda,不确定是否重要。
所以我创建了以下存储库:https://github.com/accountname/reponame 并在全新的 anaconda 环境中使用:
conda create -n github_test python=3.9
我将使用以下方法将我的包安装到其中:
pip install git+https://github.com/accountname/reponame.git
这行得通!伟大的!当我运行conda list 时,我得到以下输出:
# packages in environment at C:\Users\MyName\anaconda3\envs\github_test:
#
# Name Version Build Channel
ca-certificates 2021.10.26 haa95532_4
certifi 2021.10.8 py39haa95532_2
openssl 1.1.1m h2bbff1b_0
pip 21.2.4 py39haa95532_0
python 3.9.7 h6244533_1
setuptools 58.0.4 py39haa95532_0
sqlite 3.37.2 h2bbff1b_0
testing 0.0.1 pypi_0 pypi
tzdata 2021e hda174b7_0
vc 14.2 h21ff451_1
vs2015_runtime 14.27.29016 h5e58377_2
wheel 0.37.1 pyhd3eb1b0_0
wincertstore 0.2 py39haa95532_2
为了测试它,我决定打开 python 并导入新包:
(github_test) C:\Users\MyName>python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import testing
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'testing'
>>>
通过列表中的名称导入列表中的任何其他模块确实有效。所以我认为我的 setup.py 文件缺少一些信息。
import setuptools
setuptools.setup(
name='testing',
version='0.0.1',
url='https://github.com/accountname/reponame',
author='My Name',
author_email='REDACTED',
description='testing123',
install_requires=[]
)
我认为这只适用于公共存储库。理想情况下,我希望能够通过这种安装和分发方法使用私有存储库。有什么想法吗?
编辑:
- 删除了我的个人信息
- “有什么想法吗?” --> 你可以只指向一个私有仓库并使用提示登录。人活着是多么美好的时光:D
【问题讨论】:
-
setuptools.setup在setup.py中的调用似乎缺少packagesparameter。因此,您正在分发一个没有任何可导入包的空 Python 项目。您可能需要packages=setuptools.find_packages()或packages=['testing']。 -
您可能想从问题中删除您的电子邮件地址...
-
@ShlomoGottlieb 好主意,谢谢!
标签: python github pip package setuptools