簡體   English   中英

導入類 - Python

[英]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!!!

1

如果您使用的是 VS 代碼,最簡單的解決方法是開始執行您的腳本,如下所示。

import sys

sys.path.append('/PATH/TO/Project_Name')

import Tool1.Object1

...

2

或者,您可以將環境變量PYTHONPATH添加到settings.json (可以找到ctrl + shift + P然后輸入settings.json

    "terminal.integrated.env.linux": {
        "PYTHONPATH": "/PATH/TO/Project_Name/"
    }

這樣,你就可以

import Tool1.Object1

sys.pathPYTHONPATH將為您做同樣的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM