whois 和子进程问题(Python 3.4;64 位 Windows)

Issue with whois and subprocess (Python 3.4; 64-bit Windows)

所以我只是想让建议的查询 (domain = whois.query("google.com")) 起作用。但是每当我 运行 它时,我都会得到以下回溯:

File "file.py", line x, in weight_sources
    domain = whois.query("google.com")
  File "C:\Users\User Name\Anaconda3\lib\site-packages\whois\__init__.py", line 50, in query
    pd = do_parse(do_query(d, force, cache_file, slow_down, ignore_returncode), tld)
  File "C:\Users\User Name\Anaconda3\lib\site-packages\whois\_1_query.py", line 44, in do_query
    _do_whois_query(dl, ignore_returncode),
  File "C:\Users\User Name\Anaconda3\lib\site-packages\whois\_1_query.py", line 58, in _do_whois_query
    p = subprocess.Popen(['whois', '.'.join(dl)], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
  File "C:\Users\User Name\Anaconda3\lib\subprocess.py", line 856, in __init__
    restore_signals, start_new_session)
  File "C:\Users\User Name\Anaconda3\lib\subprocess.py", line 1111, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

我看到其他一些 questions/answers 指向 subprocess 中的第 1111 行,但我认为问题可能出在 whois 中,因为我广泛使用了 subprocess在我的设备上没有错误。由于不存在的文件似乎与 whois 包有关,我认为这个问题与 this one 无关,尽管两者可能相关?

基本上,是否有任何解决此错误的方法,或者如果我需要编辑 whois 包代码,我将如何处理?我不确定我是否完全理解 "file" 缺少什么...

丢失的文件是whois可执行文件,在此处打开:

subprocess.Popen(['whois', '.'.join(dl)]

package descriptionwhois 是 Linux whois 命令的包装器。这意味着您必须是 Linux 上的 运行 并且安装了 whois,但您是 运行 Windows.

所以我认为你对这个包不满意,也许另一个(例如python-whois)支持Windows。