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

阿里157

我的文件夹结构是:

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

我试图导入rottSyntaxrottParser,在我的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)

rottSyntax/__init__.py

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

我尝试只导入它并使用 a .,但没有任何效果,有人知道如何修复它吗?

合菜

非常快速的修复 1

执行脚本如下:

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

要么

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

非常快速的修复 2

附加路径sys.pathfrom rottParser/__init__.py

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

相对进口

要使用的封装内引用rottParserrottSyntax应子包。

具有以下结构,

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

main.py

import rott.rottParser

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

from ..rottSyntax import *

如果你想

from .rottSyntax import *

目录结构应该像

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Python中导入我自己的模块

为什么我不能在git中提交一个空文件夹?

为什么我不能在TypeScript中导入sprintf-js

为什么我不能在Anaconda上导入pygame?

为什么我不能用Kotlin读取json文件rom资源文件夹?

为什么我不能在PyCharm中导入两个模块?

在子文件夹中导入Python

Firebase实时数据库:为什么我不能在同一目录层次结构中导入多个JSON文件?

为什么我不能在文件夹中使用chmod 000?

为什么我不能将文件从Ubuntu桌面移动到其他文件夹?

Python 3只能在某些文件夹中导入astropy

为什么我不能在ES6中导出名为“导入”的函数

为什么我不能在Python中导入包?

为什么我不能在VMWare中启用共享文件夹?

为什么我不能只将文本文件移动到Python中的其他文件夹?

为什么我不能访问该文件夹?

为什么我不能在tensorflow中导入tfprof_log_pb2?

为什么我不能在 Swift 中自己运行命令?

为什么我不能在@NgModule 中导入 Angular 2 服务?

为什么我不能在 Pycharm 上运行我的文件?

VScode python 3 pylint:我可以在 A 但不能在 B 中导入 X 文件

Python:我可以在 python 中导入包,但不能在 notebook 中导入

为什么我不能访问文件夹(而不是组)中的文件?

为什么我的阅读器不能从文件中导入 basereader?

为什么我不能从文件中导入 React 组件?

为什么我不能在同一个模块中导入包?

已经设置了 PYTHONPATH,但是为什么它不能在 Python 中导入我的自定义模块?

为什么我不能从同一个文件夹导入我的组件?

为什么我不能移动我的 Documents 文件夹?