我试图用函数将我的脚本分离成几个文件,所以我将一些函数移到了单独的文件中,并希望将它们导入到一个主文件中. struct 是:

core/
  main.py
  posts_run.py

posts_run.py有两个功能,get_all_postsretrieve_posts,所以我try 使用以下功能导入get_all_posts:

from posts_run import get_all_posts

Python 3.5给出了以下错误:

ImportError: cannot import name 'get_all_posts'

主要的py包含以下代码行:

import vk
from configs import client_id, login, password
session = vk.AuthSession(scope='wall,friends,photos,status,groups,offline,messages',   app_id=client_id, user_login=login,
                     user_password=password)
api = vk.API(session)

然后我需要将api导入函数,这样我就能够获得对vk的api调用.

全堆栈跟踪

Traceback (most recent call last):
  File "E:/gited/vkscrap/core/main.py", line 26, in <module>
    from posts_run import get_all_posts
  File "E:\gited\vkscrap\core\posts_run.py", line 7, in <module>
    from main import api, absolute_url, fullname
  File "E:\gited\vkscrap\core\main.py", line 26, in <module>
    from posts_run import get_all_posts
ImportError: cannot import name 'get_all_posts'

api-主要是api = vk.API(session).皮耶.

推荐答案

你需要在核心文件夹中添加__init__.py.您之所以会收到此错误,是因为python无法将您的文件夹识别为python package

之后呢

from .posts_run import get_all_posts
#    ^ here do relative import
# or
from core.posts_run import get_all_posts
# because your package named 'core' and importing looks in root folder

Python-3.x相关问答推荐

PyTest:尽管明确运行了测试,但是被标记为没有运行测试

需要找到完全匹配并使用正则表达式替换

Python.在循环中填充字典的问题

python 3.10.5 中可能存在的错误. id 函数工作不明确

有没有办法使用 python opencv 计算与图像的白色距离

Python rolling_corr 取消后,应该用什么方法来处理

总结基于条件的值,如果不匹配则保留当前值

使用 pandas 进行多类分类的总体准确度

非拉丁字符的Python正则表达式不起作用

如何使用 Selenium by class_name 从大学橄榄球数据中抓取图像 url 列表

Await Future 来自 Executor:Future 不能在await表达式中使用

Python从base64转换为二进制

活动屏幕上的 PyQt4 中心窗口

运行 PyCharm 测试时如何解决django.core.exceptions.ImproperlyConfigured:找不到 GDAL 库?

在 sklearn.decomposition.PCA 中,为什么 components_ 是负数?

Jupyter Notebook - 在函数内绘图 - 未绘制图形

从 IPython 重新加载 Python 扩展模块

如何使用请求发送带有标头的 PATCH 请求

Pyodbc:登录超时错误

连接 dict 值,它们是列表