iT邦幫忙

0

flask +uwsgi 的 env 下如何用 dns.resolver

在 flask + uwsgi 下面用

import dns.resolver

會出現 error ....

ModuleNotFoundError: No module named 'dns.resolver'; 'dns' is not a package

當然有做 pip install dnspython 看檔案是存在的

(env) [flask@ecs-b222 app]$ ll ./env/lib/python3.6/site-packages/dns/resolver.py
-rw-rw-r-- 1 flask flask 50210 Sep 30 23:29 ./env/lib/python3.6/site-packages/dns/resolver.py

難道是要設定 ./env/etc/resolve.conf ... 試過沒有效 ....
還缺啥東西 ?

(env) [flask@ecs-b222 app]$ pip list |grep dnspython
dnspython        2.0.0
(env) [flask@ecs-b222 app]$ python
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dns.resolver
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dns.resolver'; 'dns' is not a package
>>>

ccutmis iT邦高手 8 級 ‧ 2019-10-01 00:41:38 檢舉
不確定能不能用 參考看看...
https://stackoverflow.com/questions/21641696/python-dns-module-import-error
https://www.aityp.com/python%E5%AD%A6%E4%B9%A0%E4%B9%8Bdnspython%E6%A8%A1%E5%9D%97%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E8%A7%A3%E5%86%B3/
echochio iT邦高手 1 級 ‧ 2019-10-01 01:12:13 檢舉
用git 做過了 .... 安裝後是 2.0 版的 dnspython
重點是在 flask 的虛擬環境下的問題 .... 要如何解決
```
pip list |grep dnspython
dnspython 2.0.0
(env) [flask@ecs-222 app]$ python
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dns.resolver
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dns.resolver'; 'dns' is not a package
```

1 個回答

0
黃彥儒
iT邦高手 1 級 ‧ 2019-10-01 08:37:24

變通一下,使用DNS Over HTTPS
有JSON格式的API,也可以避免一些安全問題

echochio iT邦高手 1 級 ‧ 2019-10-01 09:23:22 檢舉

知道呀 .... cloudflare API 有用過

https://developers.cloudflare.com/1.1.1.1/dns-over-https/json-format/

但是程式已寫好只是 ... 不想改了... 哈 ...
只是看看有沒有辦法做...

echochio iT邦高手 1 級 ‧ 2019-10-01 09:37:01 檢舉

花了五分鐘用 cloudflare API 寫完了
再花了五分鐘用 OS 的 dig 寫完了(呼叫外部 OS 的 dig )
再花了五分鐘用 OS 的 import dns.resolver(呼叫外部 OS 的 dig)
哈...
只是不爽看看不要呼叫外部直接用 import dns.resolver 看看行不行

我要發表回答

立即登入回答