Python不允许导入自定义包

时间:2020-02-13 19:53:23

标签: python python-3.x

因此,我在桌面上有一个python脚本,还有一个名为testpackage的软件包。它包含三个脚本,每个脚本包含一个打印单词的函数。这是其中一个脚本的示例。

def dog():
    print ("Dog")

我还有一个__init__.py文件,其中包含以下内容。

import sys, os
pathVar = os.path.normpath('/Desktop/testpackage')
from cat import *
from dog import *
from horse import *

我桌面上名为myFile.py的文件包含以下内容

from testpackage import dog
dog.dog()

运行此脚本时,出现如下错误:

来自testpackage import dog的文件'myFile.py',第1行。文件“ C:\ Users \ User \ Deskop \ testpackage__init __。py”,第3行 从猫进口* ModuleNotFoundError:没有名为“ cat”的模块

我已经在Google上找到了在阳光下的所有技巧,所以我想知道为什么它无法从__init__文件中找到脚本。

2 个答案:

答案 0 :(得分:0)

我想通了,我没有使用正确的命令来插入路径。

答案 1 :(得分:0)

您应该将模块的父目录放在PYTHONPATH中。

您可以使用以下代码实现此目的:

import sys
module_dir = r"/path/to/module/parent/dir"  
sys.path.insert(0, module_dir)
# assuming module is named my_mod.py
import my_mod