[英]after installing panda while importing in python Error: module 'os' has no attribute 'add_dll_directory'
[英]Attribute not added to module after importing
我做了以下实验室:
vagrant@ubuntu-xenial:~/test$ tree
.
├── pack1
│ ├── __init__.py
│ ├── mod1.py
│ └── pack2
│ ├── __init__.py
│ ├── mod2.py
│ └── mod3.py
└── test.py
2 directories, 6 files
vagrant@ubuntu-xenial:~/test$ tail -n +1 *.py */*.py */*/*.py
==> test.py <==
#!/usr/bin/python
import pack1.pack2.mod2
print(__file__)
try:
print(pack1.__dict__['pack2'])
except Exception as error:
print("MISSING PACK2")
==> pack1/__init__.py <==
==> pack1/mod1.py <==
==> pack1/pack2/__init__.py <==
import pack1.pack2.mod2
==> pack1/pack2/mod2.py <==
import pack1.pack2.mod3
print(__file__)
try:
print(pack1.__dict__['pack2'])
except Exception as error:
print("MISSING PACK2")
==> pack1/pack2/mod3.py <==
vagrant@ubuntu-xenial:~/test$ ./test.py
/home/vagrant/test/pack1/pack2/mod2.py
MISSING PACK2
./test.py
<module 'pack1.pack2' from '/home/vagrant/test/pack1/pack2/__init__.py'>
vagrant@ubuntu-xenial:~/test$
导入 pack1.pack2.mod3 后,pack2 不是 pack1/pack2/mod2.py 中的 pack1 的属性。
然而,它的工作原理,当PACK1 / PACK2 / __ init__.py不会导入包pack1.pack2.mod2。
为什么是这样?
模块在导入完成时作为其包的属性添加。 (请注意,这可能会干扰循环相对导入。)在这里, pack2
立即导入mod2
,因此(无论像mod3
那样进一步完成导入)它不会在mod2
执行期间出现在pack1
字典中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.