繁体   English   中英

从另一个目录导入文件

[英]Import a file from another directory

我有一个文件调用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 请帮我。

使用sys.path.append附加python文件(模块所在)的目录。 例如,如果您的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驻留的文件夹中应该有__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

假设您现在已经以subdirecory格式打开了wavread.py,则可以仅通过过滤器导入karaoke.py

from filters import karaoke

更多信息在这里https://www.python-course.eu/python3_packages.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM