簡體   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