Python - 无法安装包:TypeError:unorderable类型:NoneType()> = str()

时间:2014-07-10 17:58:24

标签: python pycharm python-3.4

系统:Win7 64,Python 3.4,Pycharm 3.0.2,MinGW

每当我尝试在Pycharm中或通过命令行安装软件包时,我都会这样:

running install
running build
running build_py
running build_ext
Traceback (most recent call last):
  File "C:\Users\MyAccount\Downloads\scandir-master\scandir-master\setup.py", line 48, in <module> 'Programming Language :: Python :: Implementation :: CPython',
  File "C:\Python34\lib\distutils\core.py", line 148, in setup dist.run_commands()
  File "C:\Python34\lib\distutils\dist.py", line 955, in run_commands self.run_command(cmd)
  File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run()
  File "C:\Python34\lib\distutils\command\install.py", line 554, in run self.run_command('build')
  File "C:\Python34\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command)
  File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run()
  File "C:\Python34\lib\distutils\command\build.py", line 126, in run self.run_command(cmd_name)
  File "C:\Python34\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command)
  File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run()
  File "C:\Python34\lib\distutils\command\build_ext.py", line 317, in run force=self.force)
  File "C:\Python34\lib\distutils\ccompiler.py", line 1031, in new_compiler return klass(None, dry_run, force)
  File "C:\Python34\lib\distutils\cygwinccompiler.py", line 282, in __init__ CygwinCCompiler.__init__ (self, verbose, dry_run, force)
  File "C:\Python34\lib\distutils\cygwinccompiler.py", line 126, in __init__ if self.ld_version >= "2.10.90":
TypeError: unorderable types: NoneType() >= str()

今天早些时候我得到了#34;无法找到vcvarsall.bat&#34;错误,但用this thread解决了这个问题。

我相信这个问题根源于我在几周前卸载Visual Studio Express,因为我没有使用它。有没有办法绕过这个错误而不再安装VSE?

谢谢!

6 个答案:

答案 0 :(得分:3)

有人建议我尝试使用mingw编译helloworld.cpp。它失败了!

我正在使用的说明我只需要安装mingw32-gcc-g ++。这不适合我。使用MinGW Installation Manager,我添加了:

  • mingw的显影剂的工具包
  • 的mingw32基
  • MSYS基
  • mingw32-gcc-g ++(先前已安装)

所以正确的指示是:<​​/ p>

  1. 从此处下载mingw-get-setup.exe安装程序:http://sourceforge.net/projects/mingw/files/Installer/
  2. 运行它
  3. 安装上述软件包
  4. 将c:\ mingw \ bin \添加到路径环境变量
  5. 转到c:\ python34 \ Lib \ distutils \并创建distutils.cfg
  6. 打开distutils.cfg并插入两行

    [构建]

    编译器的mingw32 =

  7. 我认为编译器= mingw32是指mingw32.exe可执行文件。默认情况下,该文件不存在!我不得不复制mingw32-c ++。exe并将其重命名为mingw32.exe。

    我希望这有助于其他人!

答案 1 :(得分:3)

我在虚拟环境中通过conda install mingw解决了这个问题,然后放置了

[build]
compiler=msvc

在Lib \ distutils \ distutils.cfg

答案 2 :(得分:1)

根据zolointo的回答,按照你的指示,cython安装工作正常。我在Windows 7上用Python 3.4.1安装Kivy .Kivy需要Cython。下载Cython并运行安装脚本后,我收到以下错误:

Cython编译问题“错误:无法找到vcvarsall.bat”

研究这个错误让我走上了安装MinGW的道路。如果MinGW安装程序用可选包,doc,lic,bin和dll来安装你。我安装了你上面提到的那些。

如果你跑:

python setup.py build_ext --inplace --compiler = mingw32'

您将获得以以下结尾的错误列表:

TypeError:unorderable类型:NoneType()&gt; = str()

为了解决这个问题,我按照zolointo的说明将MinGW添加到PATH并创建了distutils.cfg文件。那时你可以运行Cython的setup.py,一切正常!

答案 3 :(得分:1)

在使用Python 3.42的Windows 7上,我可以用我发现的in this thread:解决这个问题 转到Python34\Lib文件夹,在文件夹视图右上角的搜索框中键入dist-info,然后删除找到的所有文件夹。在我无法通过pip安装任何内容之后,这已经为我工作了两次而没有收到此线程的错误消息。

答案 4 :(得分:1)

将编译器设置为msvc(Visual Studio)

它已经在Windows 10 x64,Python 3.5.1上进行了测试。

解决方案:

将编译器设置为msvc(Visual Studio)。

使用以下信息在“C:\ Python35-32 \ Lib \ distutils”文件夹中创建“distutils.cfg”

[build]
compiler=msvc

[build_ext]
compiler=msvc

链接:https://wiki.python.org/moin/WindowsCompilers

答案 5 :(得分:0)

这是Python中报告的错误,请参阅:http://bugs.python.org/issue2698