簡體   English   中英

如何在 Python 中導入包

[英]How to import packages in Python

我的項目空間是這樣的:

Project
   Functions_Folder/
                   __init__.py
                   Folder1/
                          __init__.py
                          Function1.py
                          Function2.py
                          Function3.py
                   Folder2/
                              __init__.py
                              Function4.py
                              Function5.py
                              Function6.py
   Codes_Folder/
                  script1.py
                  script2.py

我需要在script1.py導入Folder1Folder2一些函數,但這些函數也必須在同一目錄中導入函數,我的意思是,例如Function4.py必須導入Function6.pyFunction3.py

請幫忙。

您可以使用相對導入

├── test
│   ├── __init__.py
│   ├── a
│   │   ├── one.py
│   │   └── two.py
│   └── b
│       ├── __init__.py
│       └── one.py
└── test.py

其中模塊aone.py文件只是

from .two import a_two

def a_one(i):
    return 10*a_two(i)

模塊atwo.py文件是

def a_two(i):
    return 5*i

模塊bone.py文件是

from ..a.one import a_one

def b_one(i):
    return a_one(i)

from ..a.one import a_onefrom .two import a_two使用相對導入。

可以通過運行test.py文件來測試整個模塊,它是

from test.b.one import b_one

print(b_one(1))

至於在腳本中導入模塊test的問題,在macOS和linux下,需要在.bashrc設置PYTHONPATH ,用於模塊test

export PYTHONPATH=the_path_to_module_test:$PYTHONPATH

所以你想從script1.py Folder1Folder2導入一些函數。

首先為Project文件夾創建__init__.py

腳本1.py

import sys
sys.path.append("..")

from Functions_folder.Folder1 import Function1, Function2
from Functions_folder.Folder2 import Function4, Function5

函數4.py

import sys
sys.path.append("..")

from Folder2 import Function5, Function6
from Folder1 import Function3

暫無
暫無

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

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