相关疑难解决方法(0)

scipy.special导入问题

我有一个导入scipy.special包的问题.它没有害处,只是讨厌/有趣.

当我导入scipy使用import scipy as sp然后尝试访问sp.special我得到:

>>> import scipy as sp
>>> sp.special
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'special'
>>>
Run Code Online (Sandbox Code Playgroud)

但如果我那么做import scipy.special,我可以通过访问特殊模块scipy.specialsp.special:

>>> import scipy as sp
>>> import scipy.special
>>> scipy.special
<module 'scipy.special' from 'C:\Python27\lib\site-packages\scipy\special\__init__.pyc'>
>>> sp.special
<module 'scipy.special' from 'C:\Python27\lib\site-packages\scipy\special\__init__.pyc'>
>>>
Run Code Online (Sandbox Code Playgroud)

所以我现在special可以通过命名空间spscipy命名空间访问模块.有趣的是,我可以通过scipy命名空间访问其余的scipy .

第一个问题:为什么special模块不能第一次导入?

第二个问题:如何 …

python scipy

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

为什么scipy导入空间工作,而scipy.spatial在导入scipy后不起作用?

我想scipy.spatial.distance.cosine在我的代码中使用.我可以导入的spatial子模块,如果我这样做import scipy.spatialfrom scipy import spatial,但如果我只是import scipy调用scipy.spatial.distance.cosine(...)下面的错误结果:AttributeError: 'module' object has no attribute 'spatial'.

第二种方法有什么问题?

python scipy

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

Python:如何从dir中的所有模块导入?

目录结构:

main.py
my_modules/
   module1.py
   module2.py
Run Code Online (Sandbox Code Playgroud)

module1.py:

class fooBar():
    ....
class pew_pew_FooBarr()
    ....
...
Run Code Online (Sandbox Code Playgroud)

如何将所有类从module*添加到没有前缀的main(即使用它们像foo = fooBar(),而不是foo = my_modules.module1.fooBar()).

一个明显的决定是在main.py中写这样的东西:

from my_modules.module1 import *
from my_modules.module2 import *
from my_modules.module3 import *
...
Run Code Online (Sandbox Code Playgroud)

但是我不想在创建新模块N时更改main.py.那有解决方案吗?

我知道导入这样的类不是一个好主意,但我仍然对此感到好奇.

UPD:这个问题不同于这个问题在Python中加载一个文件夹中的所有模块,因为我的问题是加载没有命名空间的模块.

python import module

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

标签 统计

python ×3

scipy ×2

import ×1

module ×1