为什么我不能在python中导入自己的文件夹?

2024-09-26 18:06:29 发布

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

我的文件夹结构是:

  • rottParser/
    • __init__.py
  • rottSyntax/
    • __init__.py
  • rottTests/

我正试图将rottSyntax导入rottParser, 在我的IDE(pycharm)中,它可以工作,但在我的python控制台中却不能

错误是:

[ari@ari-manjaro rottParser]$ python3.9 __init__.py
Traceback (most recent call last):
  File "/home/ari/Desktop/coding/python_/rott/rottParser/__init__.py", line 3, in <module>
    from rottSyntax import *
ModuleNotFoundError: No module named 'rottSyntax'

如前所述,在py IDE中,一切都起了作用

以下是rottParser/__init__.py

import sys
from rottSyntax import *

parse_file = sys.argv
print(parse_file)

c = '.hello'
a = syntax['comment'].search(c)
print(a)

和{}:

import re
syntax = {
    "comment": re.compile(r'^\..+')
}

我试着只导入它,然后使用.,但没有任何效果, 有人知道怎么修吗


Tags: frompyimportparseinitsyscommentide
1条回答
网友
1楼 · 发布于 2024-09-26 18:06:29

快速修复1

按如下方式执行脚本:

PYTHONPATH=.:$PYTHONPATH python rottParser/__init__.py

cd rottParser
PYTHONPATH=..:$PYTHONPATH python __init__.py

快速修复2

rottParser/__init__.pysys.path追加路径:

import sys
sys.path.append('/PATH/TO/rottParser/..')  # parent directory
from rottSyntax import *

相对进口

使用 Intra-package ReferencesrottParserrottSyntax应该是子包

结构如下,

├ rott
│ ├ rottParser/
│ │  └ __init__.py
│ └ rottSyntax/
│    └ __init__.py
└ main.py

main.py

import rott.rottParser

您可以使用相对导入,例如从rottParser/__init__.py

from ..rottSyntax import *

如果你愿意

from .rottSyntax import *

目录结构应该类似于

│ └ rottParser/
│    ├ __init__.py
│    └ rottSyntax/
│      └ __init__.py

相关问题 更多 >

    热门问题