Why does IronPython tell me that pip is a package and not an executable?

两盒软妹~` 提交于 2021-02-19 00:58:26

问题


I am a complete newbie at Python. I wanted to try to see if Pyomo (a Python package for mathematical modeling) could work under IronPython because all my code for generating the data needed for Pyomo is in C#.

I installed IronPython 2.7.5, then tried as an administrator the advice found in http://blog.ironpython.net/2014/12/pip-in-ironpython-275.html#disqus_thread on how to run "pip" for IronPython. I used the exact example they gave (installing html5lib):

ipy -X:Frames -m ensure pip
ipy -X:Frames -m pip install html5lib

The first line worked, and I see in the Lib/site-packages directory a folder called pip-6.1.1-py2.7.egg with lots of python code in it.

For the second line, I received the error:

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

At this point, I'm stuck. Any help would be appreciated.

Just in case this helps, printing out the sys.version gives:

2.7.5 (IronPython 2.7.5 (2.7.5.0) on .NET 4.0.30319.34209 (32-bit))

回答1:


I encountered the same problem. It seems that IronPython can't deal with more recent versions of pip. What I did was:

  • remove all traces from pip and setuptools from IronPython's Lib\site-packages folder
  • run from a commandline: ipy.exe -X:Frames -m ensurepip
  • this installed an old version of pip, one that IronPython understands. Verify this by checking that a folder pip-1.5.6.dist-info appears in IronPython's Lib/site-packages

Moral of the story; don't upgrade to a newer pip version when using IronPython



来源:https://stackoverflow.com/questions/31432275/why-does-ironpython-tell-me-that-pip-is-a-package-and-not-an-executable

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!