Python–从不同目录导入模块
原文:https://www . geesforgeks . org/python-import-module-from-different-directory/
在处理大型项目时,我们可能会遇到这样一种情况:我们想要从不同的目录中导入一个模块。但是由于某些原因,模块可能无法正确导入。现在,如果您的模块没有正确导入,请不要担心。在本文中,我们将讨论从另一个目录导入模块的方法。
注意:一个模块只是一个以结尾的 Python 程序。py 扩展名和包含模块的文件夹成为一个包。
导入模块
假设我们有两个不同的文件夹,一个包含 main.py ,这是我们要从 Folder_2 导入模块 1 的主 Python 文件。
目录结构
- Folder_1
- main.py
- Folder_2
- module1.py
Module1 包含两个函数,分别叫做加和奇数 _ 偶数。函数添加将接受两个参数并返回它们的相加。奇数 _ 偶数功能只取一个参数,如果数字为偶数则打印偶数,如果数字为奇数则打印奇数。
模块 1.py
Python 3
# creating a simple add function
def add(a, b):
return a+b
# creating a simple odd_even function
# to check if the number is odd or even
def odd_even(n):
if n % 2 == 0:
print("Even")
else:
print("Odd")
如果我们简单地尝试从文件夹 _2、导入模块 1 ,我们将会遇到以下错误。
main.py
Python 3
# importing module1 from another folder
import Folder_2
# calling odd_even function
module1.odd_even(5)
输出:
错误
modulentfounderror,因为默认情况下 python 解释器只会检查当前目录下的文件,我们需要手动设置文件路径才能从另一个目录导入模块。我们可以用各种方法做到这一点。下面将详细讨论这些方法。
使用系统模块
我们可以使用 sys.path 将新的不同文件夹(我们要从其中导入模块的文件夹)的路径添加到系统路径中,这样,如果 python 在当前目录中没有找到该模块,它也可以在该目录中查找该模块。由于系统路径属于列表类型类,所以我们可以很容易地使用插入方法添加文件夹路径。
Python 3
# importing sys
import sys
# adding Folder_2 to the system path
sys.path.insert(0, '/home/amninder/Desktop/Folder_2')
# importing the add and odd_even
# function
from module1 import odd_even, add
# calling odd_even function
odd_even(5)
# calling add function
print("Addition of two number is :", add(2, 2))
输出:
使用 sys
使用 PYTHONPATH 环境变量
同样,如果不想使用 sys 模块设置新目录的路径。您可以为 PYTHONPATH 变量分配一个目录路径,并且仍然让您的程序工作。
在 Linux 中,我们可以在终端中使用以下命令来设置路径:
导出 PYTHONPATH= '路径/到/目录'
在视窗系统中:
SET PYTHONPATH= "路径/到/目录"
要查看 PYTHONPATH 变量是否保存新文件夹的路径,我们可以使用以下命令:
回声$PYTHONPATH
Python 3
# importing the add and odd_even function
from module1 import odd_even, add
# calling odd_even function
odd_even(5)
# calling add function
print("Addition of two number is :", add(2, 2))
版权属于:月萌API www.moonapi.com,转载请注明出处