Pip 包在本地工作,但如果我通过 pipenv 将它安装到另一个环境中则不能

我为 api 创建了一个 pypi 包以从我的学校获取课程并将其上传到 pypi,但是当我安装它时,它无法被识别。它在本地工作得很好。


我已经尝试从 startup.py 中删除一些行,modules: []但它似乎没有改变任何东西,并且在本地仍然可以正常工作


安装程序.py


from setuptools import setup


with open("README.md", "r") as fh:

  long_description = fh.read()


setup(

  name="zermelo.py",

  version="1.0.0",

  license="MIT",

  url="https://github.com/wouter173/zermelo.py",


  description="Zermelo api wrapper library for python.",

  long_description=long_description,

  long_description_content_type="text/markdown",


  package_dir={"zermelo": "zermelo"},

  install_requires=["requests>=2.17.0"],


  classifiers=[

    "Programming Language :: Python :: 3",

    "Programming Language :: Python :: 3.7",

    "Operating System :: OS Independent",

    "License :: OSI Approved :: MIT License",

    "Development Status :: 5 - Production/Stable",

  ]

)

下面是我的文件层次结构:

http://img1.mukewang.com/6285df5300016f7202180219.jpg

源代码被放入__init__这样的文件中:


from .client import Client

在.client文件中,client.py我有一个Client用一些函数调用的类,但我认为这与它没有任何关系,因为它在本地工作得很好


我尝试将包导入到这样的项目中:


from zermelo import Client

它在本地工作,但不在 pipenv 中工作。


这些是我用来将包上传到 pypi 的命令:


python setup.py sdist

python setup.py bdist_wheel sdist

twine upload dist/*

这就是我使用 pipenv 的方式:


pipenv --python 3.7

pipenv install zermelo.py

pipenv shell

python

>>> from zermelo import Client

但这又不起作用,我不知道为什么。


当我在 pipenv 中导入它时:


from zermelo import Client

它返回一个错误:


Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ModuleNotFoundError: No module named 'zermelo'

我尝试输入不同的名称并将 zermelo 大写,但从 zermelo 导入客户端但在本地导入客户端没有任何效果


from zermelo import Client

按照我想要的方式工作,它从init .py 文件返回客户端。


拉莫斯之舞
浏览 160回答 1
1回答

呼唤远方

您setup.py没有列出要安装的内容。您必须使用packages=<a list of packages>或py_modules=<a list of .py modules>。见https://packaging.python.org/tutorials/packaging-projects/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python