Pip install numpy 抛出 TypeError 异常 IronPython 2.7

Pip install numpy throws a TypeError Exception IronPython 2.7

我在一家公司实习,我有一个关于将 Python 集成到现有 C# 项目中的项目。因此,添加 NumPy 和 SciPy 这两个库非常重要。 由于旧的 Python 版本有一些限制,这就是为什么我有点挣扎。

所以我所做的是尝试通过 pip 安装 NumPy,如下所示:

pip install --proxy="proxy:port" numpy

我得到的是异常。我已经尝试升级 pip 因为我认为它可能会解决问题但没有成功。 有谁知道这个问题的原因是什么?

DEPRECATION: pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
ERROR: Exception:
Traceback (most recent call last):
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\cli\base_command.py", line 223, in _main
    status = self.run(options, args)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\cli\req_command.py", line 180, in wrapper
    return func(self, options, args)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\commands\install.py", line 320, in run
    requirement_set = resolver.resolve(
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 180, in resolve
    discovered_reqs.extend(self._resolve_one(requirement_set, req))
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 385, in _resolve_one
    dist = self._get_dist_for(req_to_install)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 336, in _get_dist_for
    self._populate_link(req)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 302, in _populate_link
    req.link = self._find_requirement_link(req)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 267, in _find_requirement_link
    best_candidate = self.finder.find_requirement(req, upgrade)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\index\package_finder.py", line 899, in find_requirement
    best_candidate_result = self.find_best_candidate(
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\index\package_finder.py", line 882, in find_best_candidate
    candidates = self.find_all_candidates(project_name)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\index\package_finder.py", line 825, in find_all_candidates
    package_links = self.process_project_url(
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\index\package_finder.py", line 789, in process_project_url
    html_page = self._link_collector.fetch_page(project_url)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\index\collector.py", line 618, in fetch_page
    return _get_html_page(location, session=self.session)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\index\collector.py", line 430, in _get_html_page
    resp = _get_html_response(url, session=session)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\index\collector.py", line 127, in _get_html_response
    resp = session.get(
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\requests\sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_internal\network\session.py", line 428, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\requests\sessions.py", line 528, in request
    prep = self.prepare_request(req)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\requests\sessions.py", line 456, in prepare_request
    p.prepare(
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\requests\models.py", line 316, in prepare
    self.prepare_url(url, params)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\requests\models.py", line 382, in prepare_url
    scheme, auth, host, port, path, query, fragment = parse_url(url)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\urllib3\util\url.py", line 381, in parse_url
    host = _normalize_host(host, scheme)
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\urllib3\util\url.py", line 296, in _normalize_host
    return six.ensure_str(
  File "c:\program files\ironpython 2.7\Lib\site-packages\pip\_vendor\urllib3\packages\six.py", line 951, in ensure_str
    raise TypeError("not expecting type '%s'" % type(s))
TypeError: not expecting type '<type 'bytes'>'

提前致谢!

10 月 6 日更新:

我将用于安装 NumPy 的 pip install 命令更改为:

pip install --proxy="proxy:port" numpy==1.6.6

因为我知道这是兼容 python 2.7 的最后一个版本,但我没有成功。它抛出相同的错误,但抛出异常的文件不同:

pip install --proxy="xxx:port" --user numpy==1.6.6
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
DEPRECATION: A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
ERROR: Exception:
Traceback (most recent call last):
  File "C:\Users\FurkanK\AppData\Roaming\Python\IronPython27\site-packages\pip\_internal\cli\base_command.py", line 186, in _main
    status = self.run(options, args)
  File "c:\program files\ironpython 2.7\Lib\contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "c:\program files\ironpython 2.7\Lib\contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Users\FurkanK\AppData\Roaming\Python\IronPython27\site-packages\pip\_internal\req\req_tracker.py", line 42, in update_env_context_manager
    yield
TypeError: not expecting type '<type 'bytes'>'

我采取的下一步是将 pip 版本更改为旧版本:

pip install pip==20.0.1 

之后我尝试安装上面提到的较旧的 NumPy 版本,但它也没有用。

我真的不知道我还能做什么。我认为问题一定是最新的 2.7.11 IronPython 版本,因为即使更改 pip 版本也无济于事。还有其他人有任何线索吗?

无法通过 IronPython 使用 python 使用 C 扩展的库。

使用 Python.NET 可能会更好,因为它在后台与 CPython 集成。