[英]Celery doesn't work with RabbitMQ with “--autoreload” option
[英]ipython autoreload doesn't work
autoreload 在子目錄中根本不適合我。
目錄結構:
run.ipynb
oof.py
pertussis/
|-- __init__.py
在run.ipynb我有(用筆記本運行):
from pertussis import *
check() #defined in the module
這不起作用。 我什么都試過了。 我在代碼中、配置文件中、到處都添加了自動重載魔法。 我還將模塊的文件夾添加到 sys.path 列表中。 從來沒有重載過。 我嘗試從筆記本重新加載常規文件oof.py
,而不是直接加載模塊。
在oof.py我有:
from pertussis import *
def check_2():
print ("Hello")
現在發生的是 check_2 已成功自動重新加載,但模塊中的檢查仍未重新加載。
似乎沒有任何效果,我迷路了。
對於遲到的回復感到抱歉,我偶然發現了類似的問題。
在你的run.ipynb中 ,你嘗試過:
import pertussis
pertussis.check()
要么
%load_ext autoreload
%autoreload 1
然后
%aimport pertussis
check = pertussis.check # optional shortcut
check()
我不認為這是一個 iPython 問題,而是由於from
import 的性質。
以下來自Learning Python Oreilly, p798(第 5 版)
...因為在運行時
from
副本(分配)名稱中,沒有鏈接返回到名稱來自的模塊。 使用from
導入的名稱簡單地成為對對象的引用,當from
運行時,這些對象恰好被導入者中的相同名稱引用。
一種解決方法是使用import
和名稱限定。 例如:
import pertussis
pertussis.check()
然后在oof.py :
import pertussis # now must use full name qualification
def check_2():
print ("Hello")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.