为什么IronPython告诉我pip是一个包而不是一个可执行文件?

Mar*_*ton 5 ironpython pip

我是Python的全新手.我想试着看看Pyomo(用于数学建模的Python包)是否可以在IronPython下工作,因为我生成Pyomo所需数据的所有代码都在C#中.

我安装了IronPython 2.7.5,然后作为管理员尝试了http://blog.ironpython.net/2014/12/pip-in-ironpython-275.html#disqus_thread中有关如何为IronPython运行"pip"的建议.我使用了他们给出的确切示例(安装html5lib):

ipy -X:Frames -m ensure pip
ipy -X:Frames -m pip install html5lib
Run Code Online (Sandbox Code Playgroud)

第一行工作,我在Lib/site-packages目录中看到一个文件夹,里面pip-6.1.1-py2.7.egg有很多python代码.

对于第二行,我收到了错误:

Unhandled exception:
Traceback (most recent call last):
  File "C:\Program Files (x86)\IronPython 2.7\Lib\runpy.py", line 170, in run_module
  File "C:\Program Files (x86)\IronPython 2.7\Lib\runpy.py", line 111, in _get_module_details
ImportError: No module named urllib; 'pip' is a package and cannot be directly executed
Run Code Online (Sandbox Code Playgroud)

此时,我被困住了.任何帮助,将不胜感激.

为了防止这种情况有所帮助,打印出来sys.version:

2.7.5 (IronPython 2.7.5 (2.7.5.0) on .NET 4.0.30319.34209 (32-bit))
Run Code Online (Sandbox Code Playgroud)

Irm*_*ong 6

我遇到了同样的问题.似乎IronPython无法处理更新版本的pip.我做的是:

  • 从IronPython的Lib\site-packages文件夹中删除pip和setuptools中的所有痕迹
  • 从命令行运行: ipy.exe -X:Frames -m ensurepip
  • 这安装了一个老版本的pip,IronPython理解这个版本.通过检查pip-1.5.6.dist-infoIronPython中是否显示文件夹来验证这一点Lib/site-packages

故事的道德启示; 使用IronPython时不要升级到更新的pip版本