相关疑难解决方法(0)

为什么我不能从模块别名导入?

我只是偶然发现了python中的这种意外行为(2.7和3.x):

>>> import re as regexp
>>> regexp
<module 're' from '.../re.py'>
>>> from regexp import search
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'regexp'
Run Code Online (Sandbox Code Playgroud)

当然是from re import search成功的,就像我创建别名之前一样.但为什么我不能使用别名regexp(现在是一个已知模块)作为导入名称的来源?

此设置你的,只要有一个模块的多个变种一个讨厌的惊喜:说我仍在使用Python 2和我想使用的C版pickle,cPickle.如果我然后尝试从中导入一个名称pickle,它将从简单pickle模块中获取(我不会注意到它,因为它不会引发错误!)

>>> import cPickle as pickle
>>> from pickle import dump
>>> import inspect
>>> inspect.getsourcefile(dump)
'.../python2.7/pickle.py'    # Expected cPickle.dump 
Run Code Online (Sandbox Code Playgroud)

哎呀!

闲逛我看到,sys.modules包括真正的模块名称(re或者cPickle,而不是别名regexp或 …

python

16
推荐指数
2
解决办法
2591
查看次数

Python"来自xxx.yyy import xxx"错误

我正在使用PyFacebookPython中的包,我看到人们多次提到你可以编写一个import语句,如下所示:

from facebook.djangofb import facebook
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.它表明facebook.method_name存在于facebook模块中,而不是djangofb模块中.我假设我正在导入facebook.method_nameas facebook,而不是我从facebook包本身接收它.

我正在使用Python 2.6.

我怎样才能别名facebook.djangofbfacebook

python

15
推荐指数
2
解决办法
946
查看次数

为导入的变量创建一个短别名 - import types.SimpleNamespace as Ns 不起作用

命名空间在 Python 中被广泛使用,但创建命名空间似乎没有简短的形式,例如需要冗长的types.SimpleNamespace, 以及前面的import types.

那么有没有创建命名空间的语法快捷方式呢?

这是不可能的import types.SimpleNamespace as Ns,因为它给出了错误:

ImportError: No module named 'types.SimpleNamespace'; 'types' is not a package
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

标签 统计

python ×3

python-3.x ×1