python手记(21)

来源:互联网 发布:360软件管家 卸载 编辑:程序博客网 时间:2024/06/05 23:48

setup.py 安装了一个软件包。删除的时候发现 setup.py 没有 uninstall 选项。

在网上找了个简单的方法,2 个步骤可轻松完成卸载:

* 增加 –record 参数重新安装软件包,执行命令:

# python ./setup.py install --record install.txt

* 删除安装文件,执行命令:

# cat install.txt | xargs rm -rf


Python第三方模块中一般会自带setup.py文件,在Windows环境下,我们只需要使用命令

    cd c:\Temp\foo

    python setup.py install

    两个命令就可以完成第三方模块的安装了。第一个cd命令将当前目前切换到待安装的第三方模块的目录下(这里假设第三方模块解压后的目录为c:\Temp\foo),第二个命令就执行安装了。安装的过程中可能会出现“ImportError: No module named setuptools”的错误提示,这是新手很常遇见的错误提示。不用担心,这是因为Windows环境下Python默认是没有安装setuptools这个模块的,这也是一个第三方模块。下载地址为http://pypi.python.org/pypi/setuptools

    如果是Windows环境的话,下载exe形式的安装程序就可以了(傻瓜式安装,非常快)。安装了setuptools之后,再运行“python setup.py install”就可以方便地安装各种第三方模块了。


setup.py 帮助你纪录安装细节方便你卸载
python setup.py install --record log
这时所有的安装细节都写到 log 里了
想要卸载的时候
cat log | xagrs rm -rf
就可以干净卸载了

  1. 首先安装MinGW,在MinGW的安装目录下找到bin的文件夹,找到mingw32-make.exe,复制一份更名为make.exe
  2. 把MinGW的路径添加到环境变量path中,比如我把MinGW安装到D:\MinGW\中,就把D:\MinGW\bin添加到path中;
  3. 打开命令行窗口,在命令行窗口中进入到要安装代码的目录下;
  4. 输入如下命令就可以安装了。
  5. setup.py install build --compiler=mingw32

cc1.exe: 错误:unrecognized command line option ‘-mno-cygwin’
error: command 'gcc' failed with exit status 1

原因是gcc 4.6.x 以后不再接受-mno-cygwin为了解决这个问题需要修改<python安装目录>\distutils\cygwinccompiler.py文件。找到:

 
1
2
3
4
5
6
7
self.set_executables(compiler='gcc -mno-cygwin -O -Wall',
                            compiler_so='gcc -mno-cygwin -mdll -O -Wall',
                            compiler_cxx='g++ -mno-cygwin -O -Wall',
                            linker_exe='gcc',
                            linker_so='%s -mno-cygwin %s %s'
                                       % (self.linker_dll, shared_option,
                                          entry_point))

修改为:

 
1
2
3
4
5
6
7
self.set_executables(compiler='gcc -O -Wall',
                            compiler_so='gcc -mdll -O -Wall',
                            compiler_cxx='g++ -mno-cygwin -O -Wall',
                            linker_exe='gcc',
                            linker_so='%s -mno-cygwin %s %s'
                                       % (self.linker_dll, shared_option,
                                          entry_point))

至此,大功告成!