从另一个目录导入文件

2024-06-16 13:55:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件调用entryPoint.py

from .commonLib.deviceLib import *

我有一个名为deviceLib.py的文件:

import math
import sys
import logging
import requests
import this

class DeviceLib(object):
    def __init__(self, connectionDb):
        self.__db = connectionDb

这棵树是这样的:

/test
    entryPoint.py
/commonLib
    __init__.py
    deviceLib.py

当我执行python entryPoint.py时,得到错误:Attempted relative import in non-package。请帮帮我。


Tags: 文件frompyimportselfinitloggingsys
3条回答

使用sys.path.append附加python文件(模块)所在的目录。E、 g如果您的entryPoint.py位于地址目录中

import sys
sys.path.append('/path/to/your/module/address/')
import entryPoint

要从其他目录导入文件,可以使用以下代码:

import sys
sys.path.insert(0, 'folder destination')
import file

正如您在这里看到的,我们包含了路径,因此python也将在该路径中查找文件。

/test和/commonLib reside文件夹中都应该有__init__.py

那就做吧

from commonLib import deviceLib

例如

sound
|-- effects
|   |-- echo.py
|   |-- __init__.py
|   |-- reverse.py
|   `-- surround.py
|-- filters
|   |-- equalizer.py
|   |-- __init__.py
|   |-- karaoke.py
|   `-- vocoder.py
|-- formats
|   |-- aiffread.py
|   |-- aiffwrite.py
|   |-- auread.py
|   |-- auwrite.py
|   |-- __init__.py
|   |-- wavread.py
|   `-- wavwrite.py
`-- __init__.py

假设您现在在format subrecory中打开了wavread.py,只需

from filters import karaoke

更多信息, https://www.python-course.eu/python3_packages.php

相关问题 更多 >