[英]How do I construct a python import statement to check for the presence of a module alias in the calling namespace?
我正在尝试编写一个向plotly.express
包添加函数的plotly.express
。 我正在努力让它发挥作用:
>>> import plotly.express as px
>>> import plotly_ecdf
>>> px.ecdf()
'ECDF plot here!'
这实际上与plotly_ecdf.py
中的plotly_ecdf.py
:
# plotly_ecdf.py
import plotly.express as px
def ecdf():
print("ECDF plot here!")
px.ecdf = ecdf
奇怪的是,如果我还没有导入plotly.express
, plotly_ecdf
导入也会失败:
>>> import plotly_ecdf
>>> px.ecdf()
NameError: name 'px' is not defined
我尝试利用这个响应。 在函数中调用时,我可以访问和写入变量,但在导入语句期间无法使用它。
那么我如何修改plotly_ecdf.py
以检查是否已经导入了plotly.express
以便我可以抛出错误(如果不是)? 如果这可以修改已分配给plotly.express
任何别名,则加分。 提前致谢!
我不认为我完全理解你想要什么。 如果这是一个添加到现有plotly.express
包的库,那么我建议将plotly_ecdf.py
转换为带有setup.py的适当 python 包,然后使plotly
成为一个要求。
尝试以另一种方式做这件事似乎不是一个好主意。 虽然如果你愿意,你可以这样做:
try:
import plotly.express as px
except NameError:
print("Plotly.express not installed \nPlease install using pip install plotly")
但我建议不要这样做,因为创可贴解决方案总是失败。
编辑根据您的评论,您也可以简单地通过像这样设置目录树来做到这一点:
plotly_ecdf.py
requirements.txt
readme.md
然后在requirements.txt
指定:
plotly
并在您的自述文件中添加一行
## Dependencies
install all dependencies by running ```pip install -r requirements.txt```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.