相关疑难解决方法(0)

给定完整路径如何导入模块?

如何在完整路径下加载Python模块?请注意,该文件可以位于文件系统中的任何位置,因为它是一个配置选项.

python configuration python-module python-import

1022
推荐指数
18
解决办法
80万
查看次数

如何在Python中进行相对导入?

想象一下这个目录结构:

app/
   __init__.py
   sub1/
      __init__.py
      mod1.py
   sub2/
      __init__.py
      mod2.py
Run Code Online (Sandbox Code Playgroud)

我正在编码mod1,我需要从中导入一些东西mod2.我该怎么办?

我尝试了from ..sub2 import mod2但是我得到了"尝试非包装中的相对导入".

我google了一下,但发现只有" sys.path操纵"黑客.有没有干净的方式?


编辑:我__init__.py的所有人目前都是空的

EDIT2:我想这样做,因为SUB2包含了为子包(共享类sub1,subX等等).

Edit3:我正在寻找的行为与PEP 366中描述的相同(感谢John B)

python python-module python-import

508
推荐指数
11
解决办法
31万
查看次数

如何从同一文件夹中的模块导入函数?

我试图将我的脚本分成几个带有函数的文件,因此我将一些函数移动到单独的文件中,并希望将它们导入到一个主文件中.结构是:

core/
  main.py
  posts_run.py
Run Code Online (Sandbox Code Playgroud)

posts_run.py有两个功能,get_all_posts并且retrieve_posts,所以我尝试导入get_all_posts具有:

from posts_run import get_all_posts
Run Code Online (Sandbox Code Playgroud)

Python 3.5给出了错误:

ImportError: cannot import name 'get_all_posts'
Run Code Online (Sandbox Code Playgroud)

Main.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)
Run Code Online (Sandbox Code Playgroud)

然后我需要将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 …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

9
推荐指数
2
解决办法
2万
查看次数