繁体   English   中英

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

[英]Pip package working locally but not if i install it via pipenv into another environment

我为api创建了一个pypi包,以便从学校上课,并将其上传到pypi,但是在安装时,它并没有被认可。 当它在本地工作正常。

我试过从startup.py中删除一些行,例如modules: []但似乎没有任何改变,仍然可以在本地工作

setup.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",
  ]
)

以下是我的文件层次结构: 在此处输入图片说明

像这样将源代码放入__init__文件中:

from .client import Client

.client client.py.client文件中,我有一个名为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文件返回客户端。

您的setup.py没有列出任何要安装的内容。 您必须使用packages=<a list of packages>py_modules=<a list of .py modules>

参见https://packaging.python.org/tutorials/packaging-projects/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM