[英]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.