怎么安装python模块,如何安装python模块,常用安装方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么安装python模块,如何安装python模块,常用安装方式相关的知识,希望对你有一定的参考价值。

先在命令行里打一下pip,确认下这个模块安装了没有。
如果没有则,
首先安装easy_install
下载地址:https://pypi.python.org/pypi/ez_setup
解压,安装.

python ez_setup.py

 安装好easy_install 之后 再安装pip

下载地址:https://pypi.python.org/pypi/pip
解压,安装.

   python setup.py install

之后要安装的包就直接

pip install  xxx

   

参考技术A 一、方法1: 单文件模块
直接把文件拷贝到 $python_dir/Lib

二、方法2: 多文件模块,带setup.py

下载模块包,进行解压,进入模块文件夹,执行:
python setup.py install

三、 方法3:easy_install 方式

先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package了。
easy_install packageName
easy_install package.egg

四、 方法4:pip 方式

先进行pip工具的安装:easy_install pip(pip 可以通过easy_install 安装,而且也会装到 Scripts 文件夹下。)

安装:pip install PackageName

更新:pip install -U PackageName

移除:pip uninstall PackageName

搜索:pip search PackageName

帮助:pip help

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

注:虽然Python的模块可以拷贝安装,但是一般情况下推荐制作一个安装包,即写一个setup.py文件来安装。
setup.py文件的使用如下:
% python setup.py build #编译
% python setup.py install #安装
% python setup.py sdist #制作分发包
% python setup.py bdist_wininst #制作windows下的分发包
% python setup.py bdist_rpm

setup.py文件的编写
setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。
简单的例子:
setup.py文件:

from setuptools import setup, find_packages
setup(
name = " mytest " ,
version = " 0.10 " ,
description = " My test module " ,
author = " Robin Hood " ,
url = " http://www.csdn.net " ,
license = " LGPL " ,
packages = find_packages(),
scripts = [ " scripts/test.py " ],
)

mytest.py

import sys
def get():
return sys.path

scripts/test.py

import os
print os.environ.keys()

setup中的scripts表示将该文件放到 Python的Scripts目录下,可以直接用。OK,简单的安装成功,可以运行所列举的命令生成安装包,或者安装该python包。本机测试成功(win32-python25)!

附注:setuptools工具安装方法

(方法一). 使用ez_setup.py安装setuptools
  进入https://pypi.python.org/pypi/setuptools下载ez_setup.py
这是 setuptools 自豪的一种安装方式,只需要一个大约 8K 作为的脚本ez_setup.py,就能自动为用户安装包括 setuptools 自身在内的许多 Python 包。 使用这种方式,用户只需要下载 ez_setup。py 并运行,就可以自动下载和安装适合用户当前 Python 版本的适当的 setuptools egg 文件(当然,用户需要 Python 2.3.5 以上的版本,64 位操作系统的用户则需要 Python 2.4 以上的版本)。此外,这段脚本还会将可执行的 easy_install 脚本安装到用户所有的操作系统 Python 可执行脚本正常应该安装的位置(例如,Windows 用户会安装到 Python 安装目录下的 Scripts 目录中)。关于这种安装方法的更详细说明和注意事项,请参考其官方说明(见扩展阅读)。简单的安装命令如下:   wget -q ez_setup。py下载地址(见扩展阅读) 安装完后,最好确保
(方法二). 使用完整的安装包安装setuptools
  当然,用户也可以直接使用 setuptools发布版本来安装。对于使用 Windows 的用户,这也是挺方便的方法,许多 Linux 发行版的官方包管理仓库都包含 setuptools 的某个版本。例如,如果你跟我一样使用 Ubuntu ,那安装 setuptools 只是简单的进行如下操作:
# apt-get install python-setuptools
安装 easy_install package-name,比如 easy_install pylab
模块卸载 easy_install -m package-name, 比如easy_install -m pylab
easy_install -m 包名,可以卸载软件包,但是卸载后还要手动删除遗留文件。
setuptools它可以自动的安装模块,只需要你提供给它一个模块名字就可以,并且自动帮你解决模块的依赖问题。一般情况下用setuptools给安装的模块会自动放到一个后缀是.egg的目录里。

在Windows里,easy_install这个命令在python安装目录下的scripts里面,所以需要把scripts加到环境变量的PATH里,这样用起来就更方便,linux下不需要注意这个问题。

Python的错误导入已经安装模块问题,怎么解决

当遇到无法导入某个python模块时,可能会是没有安装某个模块,也有可能是某模块在加载过程中失败,也有可能是陷入了循环导入的问题。本文详细解释了这个问题。
1. 模块未安装或者路径不对
ImportError: No mudule named myModule

有两种可能,一是该模块没有安装,一般可以用
pip install %module_name%

来解决。注意有时候模块安装包名并不等于要导入的模块名。这种情况下可以通过pip search | list命令来尝试找到正确的包。
另一种情况就是包虽然安装了,但当前运行的程序加载的路径有错。python运行时将从以下位置尝试加载python modules:
* 当前目录
* 环境变量$PYTHONPATH所指示的值,这是一个由“:”分隔的字符串,各个子字符串都是文件系统的一个路径。
* 标准库目录,如dist-site-packages下的模块。
* 在.pth文件中指定的路径,如果存在.pth文件的话。
可以使用以下方式来查看python运行时的包含路径:
?

12

import sysprint(sys.path)

在运行出错的脚本装头部加上这一段代码,然后在控制台中查看打印出来的python类库路径,检查安装包是否已包含在上述路径中。
***可以通过下面的方式将未包含在路径中的模块临时包含进来:***
sys.path.append("path/to/module")

另外,还可以在shell窗口中查看当前的python包含路径:
echo $PYTHONPATH
2. 无法导入已存在的模块
如果要导入的模块包含了native代码,并且native代码加载(初始化)失败时,就会导致这种错误。使用ssl,
gevent等涉及native的模块时,如果对应的native程序并未安装,则会出现这样的错误。
另一种错误情况是,使用相对路径导入时,父模块还未导入成功。见下面的代码:
?

12345

main.pymypackage/ __init__.pymymodule.pymyothermodule.py

mymodule.py如下所示:
?

123456789101112

#!/usr/bin/env python3 # Exported functiondef as_int(a): return int(a) # Test function for module def _test(): assert as_int(\'1\') == 1 if __name__ == \'__main__\': _test()

以及myothermodule代码如下所示:
?

1234567891011121314

#!/usr/bin/env python3 from .mymodule import as_int # Exported functiondef add(a, b): return as_int(a) + as_int(b) # Test function for module def _test(): assert add(\'1\', \'1\') == 2 if __name__ == \'__main__\': _test()

如果执行mypackage/myothermodule,则会报以下错误:
Traceback (most recent call last):
File "myothermodule.py", line 3, in
<module>
from .mymodule import as_int
SystemError: Parent module
\'\' not loaded, cannot perform relative import
[这篇文章](#Relative imports in
Python 3)给出了更详细的解答。
3. 循环导入
这种错误称之为"circular (or cyclic) imports"。是python独有的一种导入错误,在象java这样的语言中就不存在。
假设有如下两个文件,a.py和b.py:
?

1234567

#a.pyprint "a in"import sysprint "b imported: %s" % ("b" in sys.modules, )import bprint "a out"print b.x

以及:
?

12345

#b.pyprint "b in"import aprint "b out"x = 3

执行python a.py,将得到以下结果:
?

123456789101112131415

$ python a.pya in b imported: Falseb ina inb imported: Truea outTraceback (most recent call last): File "a.py", line 4, in <module> import b File "/home/shlomme/tmp/x/b.py", line 2, in <module> import aFile "/home/shlomme/tmp/x/a.py", line 7, in <module> print b.xAttributeError: \'module\' object has no attribute \'x\'

出现这种情况的原因是产生了循环导入。循环导入,以及在导入过程中python进行了加锁操作,最终导致在模块b未导入完成时就引用了其中的名字。
判断导入错误是否是因为循环导入引起的,主要看堆栈中是否出现两次重复的导入。比如上述堆栈中a.py出现两次,因此可以判断是这个文件引起的循环导入。
要解决这个问题,可以把模块看成一种资源,对所有要引入的模块进行编号,再按静态资源排序法顺次导入,就可以避免循环导入。
参考技术A 直接用try-except结构进行捕获处理:
try:
from _foo import *
except ImportError:
raise ImportError('导入错误')

以上是关于怎么安装python模块,如何安装python模块,常用安装方式的主要内容,如果未能解决你的问题,请参考以下文章

Python如何安装模块

怎么安装python模块,如何安装python模块,常用安装方式

怎么安装python模块,如何安装python模块,常用安装方式

怎么安装python多线程模块

python怎么安装ssh模块

window怎么安装python的模块