[英]Importing classes - Python
早上好,我遇到了以下問題。 准確地說,我有以下設置:
Project_Name
|
|--> __init__.py
|
|--> Tool1
| |
| |--> Object1.py
| |
| |--> __init__.py
|
|--> Tool2
|
|--> Object2.py
|
|--> __init__.py
其中 Project_name、Tool1 和 Tool2 是文件夾。 Object2 包含一個名為“House”的 class。 如何在 Object1 中使用 class 'House'? 我嘗試了以下方法:
from Tool2.Object2 import House
但我收到錯誤消息“沒有名為“Tool2”的模塊。
我究竟做錯了什么? 所有init .py 文件都是空的,我應該改變它嗎?
您需要將PYTHONPATH
導出到您的Project_Name
以便解釋器知道要查找的特定文件夾。
export PYTHONPATH=path/to/your/project
例如:
對象1.py
from tool2.object2 import House
house = House()
house.print_message("Hello World!!!")
對象2.py
class House(object):
def __init__(self):
pass
def print_message(self, text):
print(text)
導出PYTHONPATH
前后的輸出
$ python tool1/object1.py
Traceback (most recent call last):
File "tool1/object1.py", line 2, in <module>
from tool2.object2 import House
ImportError: No module named tool2.object2
$ pwd
/Users/.../StackOverflow
$ export PYTHONPATH=/Users/.../StackOverflow
$ python tool1/object1.py
Hello World!!!
$ python object1.py
Hello World!!!
如果您使用的是 VS 代碼,最簡單的解決方法是開始執行您的腳本,如下所示。
import sys
sys.path.append('/PATH/TO/Project_Name')
import Tool1.Object1
...
或者,您可以將環境變量PYTHONPATH
添加到settings.json
(可以找到ctrl + shift + P
然后輸入settings.json
)
"terminal.integrated.env.linux": {
"PYTHONPATH": "/PATH/TO/Project_Name/"
}
這樣,你就可以
import Tool1.Object1
sys.path
和PYTHONPATH
將為您做同樣的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.