首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python不能在同一个文件夹中导入py文件

Python不能在同一个文件夹中导入py文件
EN

Stack Overflow用户
提问于 2020-01-03 07:57:19
回答 3查看 4K关注 0票数 0
  • VSCode版本: 1.41.1
  • OS版本:Ubuntu18.04

复制步骤:

代码语言:javascript
运行
复制
# tree:
.
├── demo1
│   ├── __init__.py
│   └── test.py
├── __init__.py
├── auto.py
代码语言:javascript
运行
复制
# auto.py
def func():
    print("1")
代码语言:javascript
运行
复制
# test.py
from auto import func

func()

使用示例来解决项目中出现的问题,运行test.py文件,我得到了"ModuleNotFoundError:没有名为‘func’的模块“,我在test.py中使用了'CTRL '+鼠标左键跳转到func--相同的代码可以在pycharm中运行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-03 08:30:24

如果直接运行test.py,则需要将父文件夹添加到PYTHONPATH。尝试:

代码语言:javascript
运行
复制
import sys
sys.path.append("..\<parent_folder>")
from auto import func

否则,如果您只想在另一个test.py文件中导入.py,则可以使用python的相对导入。

代码语言:javascript
运行
复制
from . import auto #another dot '.' to go up two packages
auto.func()

Reference

票数 3
EN

Stack Overflow用户

发布于 2020-01-03 08:35:34

在导入之前,在test.py中添加以下内容:

代码语言:javascript
运行
复制
import sys
sys.path.insert(0, "/path/to/project/root/directory")

对我来说,这不是一个好的文件组织。更好的做法如下:

让您的项目文件树类似:

代码语言:javascript
运行
复制
.
├── __init__.py
├── lib
│   ├── auto.py
│   └── __init__.py
└── test.py

并编写如下test.py:

代码语言:javascript
运行
复制
from lib.auto import func

func()
票数 0
EN

Stack Overflow用户

发布于 2020-01-03 08:32:47

简单单行解

代码语言:javascript
运行
复制
from ... import auto

并使用auto.func()调用该函数。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59575018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档