我试图用函数将我的脚本分离成几个文件,所以我将一些函数移到了单独的文件中,并希望将它们导入到一个主文件中. 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相关问答推荐

IPython似乎已安装但无法运行

按长度和字母数字对Pandas 数据帧列进行排序

估计列表中连续对的数量

requests.exceptions.InvalidSchema:未找到连接适配器.我试图遍历一个列表

将 rgb numpy 图像转换为 rgb 列表和相应的索引值

嵌套协议的使用(协议成员也是协议)

有没有一种方法可以通过输入从 0 到 255 的 R、G 和 B 值来生成 RGB colored颜色 ,而无需使用 python 中的 matplotlib 模块?

将逗号分隔的字符串类型系列转换为整数列表 pandas

如何在 on_ready 事件中使用 change_presence? (discord.py)

列表中的重复数字与列表理解

每个数据行中每个数据帧值的总和

类型提示和链式赋值以及多重赋值

如何在多核上运行 Keras?

Python configparser 不会接受没有值的键

如何等待 create_task() 创建的任务完成?

为 Python 3 和 PyQt 构建可执行文件

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

导入父目录进行简要测试

matplotlib - 模块sip没有属性setapi

如何为 Python 3.x 安装 psycopg2?