0

所以我只是想让建议的查询(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

我已经看到其他一些问题/答案指向第 1111 行subprocess,但我认为问题可能出在whoissubprocess在设备上广泛使用且没有错误的情况下。由于不存在的文件似乎与whois包有关,我认为这个问题与这个无关,尽管两者可能相关?

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

4

1 回答 1

2

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

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

包描述whois是 Linuxwhois命令的包装器。这意味着您必须在 Linux 上运行并已whois安装,但您运行的是 Windows。

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

于 2018-02-07T07:27:22.473 回答