相关疑难解决方法(0)

将python包从本地目录导入解释器

我正在我的本地目录中开发/测试包.我想在解释器(v2.5)中导入它,但sys.path不包含当前目录.现在我输入sys.path.insert(0,'.').有没有更好的办法?

也,

from . import mypackage
Run Code Online (Sandbox Code Playgroud)

失败并出现此错误:

ValueError: Attempted relative import in non-package
Run Code Online (Sandbox Code Playgroud)

python

79
推荐指数
7
解决办法
17万
查看次数

Python:相对导入意味着你不能自己执行子包吗?

我最近移植了我的Python项目以在Python 3.1上运行.为此我必须在我的项目的子模块和子包中采用相对导入的策略.我不这样做,现在项目本身有效,但我注意到我无法执行其中的任何子包或子模块.如果我尝试,我得到"builtins.ValueError:在非包中尝试相对导入".我只能导入整个项目.

这是正常的吗?

python import python-3.x

7
推荐指数
1
解决办法
1837
查看次数

理解Python中的一系列进口

我知道有几个类似的问题,但我很难理解我得到的错误,浏览文档和类似的问题还没有帮助.如果有的话,类似的问题让我觉得我正在做的是对的.

我有以下文件:

SRC/main.py

from pack import pack

if __name__ == '__main__':
    pack.exec("Hello Universe!")
Run Code Online (Sandbox Code Playgroud)

SRC /包/ pack.py

import util

def exec(text):
    util.write(text)

if __name__ == '__main__':
    exec("Hello World!")
Run Code Online (Sandbox Code Playgroud)

SRC /包/ util.py

def write(text):
    print(text)
Run Code Online (Sandbox Code Playgroud)

*src/pack/_ init _.py*

EMPTY FILE
Run Code Online (Sandbox Code Playgroud)

当我python pack.pysrc/pack目录运行时,它可以工作(打印"Hello World!").但是,当我python main.pysrc目录运行时,我得到以下异常:

Traceback (most recent call last):
  File ".../src/main.py", line 1, in <module>
    from pack import pack
  File ".../src/pack/pack.py", line 1, in <module>
    import util
ImportError: No module named util
Run Code Online (Sandbox Code Playgroud)

如果我改变了进口线 …

python import python-3.x

3
推荐指数
1
解决办法
6132
查看次数

将代码从Python 2.x转换为3.x.

这是我上一个问题的后续内容,我正在使用Senthil Kumaran建议的2to3工具

它似乎运作良好,但它没有拿起这部分:

raise LexError,("%s:%d: Rule '%s' returned an unknown token type '%s'" % (
    func.func_code.co_filename, func.func_code.co_firstlineno,
    func.__name__, newtok.type),lexdata[lexpos:])
Run Code Online (Sandbox Code Playgroud)

这在3.2中应该是什么样的?

编辑:从下面的答案的变化是好的,2to3现在似乎工作正常.在setup.py构建中,我现在得到以下错误,请参阅我的新问题.

python python-3.x

1
推荐指数
1
解决办法
2950
查看次数

标签 统计

python ×4

python-3.x ×3

import ×2