从python包中的不同点导入(flask项目)

时间:2014-04-15 14:01:47

标签: python namespaces flask packages python-import

我正试图在烧瓶中构建我的第一个Web应用程序,并且我遇到了一些问题。烧瓶应用程序将一些pickle对象推送到redis队列。对象位于命名空间app.mypackage.mymoduleA中。也就是说,对象有

object.__class__ == app.mypackage.mymoduleA.Myclass

接下来,我有一个外部进程运行一个守护进程(位于同一个包中的另一个模块中),它处理redis队列中出现的对象(即异步)。我的问题是,当对象被打开时,pickle模块会抛出一个ImportError异常,因为app.mypackage.mymoduleA.Myclass没有导入到模块中。

虽然我理解命名空间的想法(至少我认为我这样做),但我在理解它们如何在现实中工作时遇到了一些困难。所以无论如何,这是我的问题:

1)是否有可能"假"命名空间?像

这样的东西
import mymoduleA.Myclass as app.mypackage.mymoduleA.Myclass

2)由于伪造命名空间可能是一个黑客,是否有一个"权利"这样做的方法?基本上问题是在一个程序中创建和腌制对象,导入Myclass如下:

from mypackage.mymoduleA import Myclass

虽然它们在另一个导入Myclass的程序中被取消,但是这样:

from mymoduleA import Myclass

我在解释我的意思时遇到了一些困难,所以我希望我的问题有道理。

谢谢!

奖金问题:我知道问题1中的语法不起作用,但有人可以向我解释为什么不允许这种导入模块的方式吗?

0 个答案:

没有答案