为什么我不能正常使用我的包裹?皮皮

why can I not use my package normally? PyPi


我正在构建一个非常简单的包,我设法将它上传到 pypi。
我关注了这个 post:https://www.freecodecamp.org/news/build-your-first-python-package/
但是当我尝试导入并使用它时,发生了一件奇怪的事情。
import testsimpleprinter as tsp

tsp.testsimpleprinter("Hello") # <- does not work

tsp.testsimpleprinter.testsimpleprinter("Hello there!") # <- this works just fine
TestSimplePrinter
├── testsimpleprinter
│   ├── testsimpleprinter.py <- inside this, I have a func called testsimpleprinter again
│   └── __init__.py <- "from testsimpleprinter import testsimpleprinter"
├── setup.py 

起初我以为我创建的 setup.py 哪里错了,所以我把它移到 testsimpleprinter 文件夹中。但是当我尝试使用它时,我得到了这样的结果:

ERROR: File "setup.py" not found for legacy project testsimpleprinter==0.1.0 from https://files.pythonhosted.org/packages/08/36/6446d90277fa8899aaa68b811b/a89ba43807c58be2bab666197ff0e9f41c/testsimpleprinter-0.1.0.tar.gz#sha256=713fc48338620adfd4ef71102478d5e740ad77164fafbc19363f4cf1816922cc.

和post一样,我想这样使用我的包

import testsimpleprinter as tsp

tsp.testsimpleprinter("Hello") # I want it to work

提前致谢。

问题出在您的 testsimpleprinter/__init__.py 文件上。使用 import 语句 from testsimpleprinter import testsimpleprinter 您将重新导入包,而不是本地 testsimpleprinter.py 文件。要指定本地文件,需要添加一个.作为前缀,应该是这样的:

# testsimpleprinter/__init__.py file
from .testsimpleprinter import testsimpleprinter