問題
python setup.py install安裝一個我正在開發的包,但是當我嘗試匯入包時,我得到一個“ModuleNotFoundError”,說找不到本地包。該包在本地作業(當我 cd 到目錄并嘗試從那里將其匯入 python 解釋器時)。
娛樂:
C:.
│ setup.py
│
└───package
│ __init__.py
│
└───networking
hello.py
__init__.py
setup.py
from setuptools import setup
setup(
name="test_package",
packages=["package"],
version="0.0.1",
description="Test",
)
package/networking/__init__.py
from package.networking.hello import Hello
package/networking/hello.py
class Hello:
def __init__(self, name):
self.name = name
def hello(self):
print("Hello", self.name)
以下代碼在本地測驗時有效(意思是,你 cd 到包含包的目錄,然后在那里輸入 python 解釋器并嘗試),但在我使用 setup.py install 安裝包之后不起作用:
> python setup.py install
> cd .. # Change directory so we don't import locally, but use the version installed with setup.py
> python
>>> from package.networking import Hello
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'package.networking'
>>>
相反,當我與包在同一目錄中時,這有效:
> python
>>> from package.networking import Hello
>>> Hello("Test").hello()
Hello Test
uj5u.com熱心網友回復:
setup(
name="test_package",
packages=["package"],
...
)
你不會錯過什么嗎?
packages=[
'package',
'package.networking'
],
package_dir={
'package': 'package',
'package.networking': 'package/networking',
},
這是一個示例:首先列出所有包,然后將它們與目錄關聯。
setup.py必須知道要構建哪些模塊,給它們起什么名字,以及在哪里可以找到它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/491209.html
上一篇:如何連接具有相互接頭的線
