Python如何安装模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python如何安装模块相关的知识,希望对你有一定的参考价值。
一、方法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 参考技术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 参考技术B 在安装模块之前,你首先得安装了setuptools。不懂的朋友可以参看我的经验《python怎么使用ez_setup.py 》就可以用ez_setup.py安装了setuptools了。在这里就不多赘述
有了setuptools,我们就要开始配置环境。因为你需要用到python安装目录下的Scripts文件夹里面的文件
到桌面,点击计算机右键--属性
点击“高级系统设置”
点击“环境变量”
在系统变量一栏下拉,找到PATH,双击
先在最后加一个分号;
然后再输入 “你的python路径”\Scripts
比如我的python安装路径是D:\python2.7.6
那么我应该输入D:\python2.7.6\Scripts
如图
设置完毕之后,就可以直接用命令行安装模块了。
比如我要安装PIL模块,只需要输入easy_install PIL
回车
开始下载 参考技术C 1. 单文件模块:直接把文件拷贝到$python_dir/lib
2. 多文件模块,带setup.py:python setup.py install
3. egg文件,类似Java的jar:
1) 下载ez_setup.py,运行python ez_setup
2) easy_install *.egg 参考技术D 1. 单文件模块:直接把文件拷贝到$python_dir/lib
2. 多文件模块,带setup.py:python setup.py install
3. egg文件,类似Java的jar:
1) 下载ez_setup.py,运行python ez_setup
2) easy_install *.egg
如何使用 distutils 安装 Python 扩展模块?
【中文标题】如何使用 distutils 安装 Python 扩展模块?【英文标题】:How do I install a Python extension module using distutils? 【发布时间】:2010-09-23 02:30:30 【问题描述】:我正在开发一个名为“lehmer”的 Python 包,其中包含一堆用 C 编写的扩展模块。目前,我有一个扩展模块“rng”。我正在使用 Python 的 Distutils 来构建和安装模块。我可以编译和安装模块,但是当我尝试使用import lehmer.rng
或from lehmer import rng
导入模块时,Python 解释器会抛出ImportError
异常。我可以很好地导入“lehmer”。
这是我的setup.py
文件的内容:
from distutils.core import setup, Extension
exts = [Extension("rng", ["lehmer/rng.c"])]
setup(name="lehmer",
version="0.1",
description="A Lehmer random number generator",
author="Steve Park, Dave Geyer, and Michael Dippery",
maintainer="Michael Dippery",
maintainer_email="mpd@cs.wm.edu",
packages=["lehmer"],
ext_package="lehmer",
ext_modules=exts)
当我列出 Python 的 site-packages
目录的内容时,我看到以下内容:
th107c-4 lehmer $ ls /scratch/usr/lib64/python2.5/site-packages/lehmer
__init__.py __init__.pyc rng.so*
我的PYTHONPATH
环境变量设置正确,所以这不是问题(如前所述,我可以import lehmer
很好,所以我知道 PYTHONPATH
不是问题)。 Python 使用以下搜索路径(由sys.path
报告):
['', '/scratch/usr/lib64/python2.5/site-packages', '/usr/lib/python25.zip', '/usr/lib64/python2.5', '/usr/lib64/python2.5/plat-linux2', '/usr/lib64/python2.5/lib-tk', '/usr/lib64/python2.5/lib-dynload', '/usr/lib64/python2.5/site-packages', '/usr/lib64/python2.5/site-packages/Numeric', '/usr/lib64/python2.5/site-packages/PIL', '/usr/lib64/python2.5/site-packages/SaX', '/usr/lib64/python2.5/site-packages/gtk-2.0', '/usr/lib64/python2.5/site-packages/wx-2.8-gtk2-unicode', '/usr/local/lib64/python2.5/site-packages']
更新
在 OpenSUSE 10 机器上使用时可以工作,但在 Mac OS X 上测试时仍然无法加载 C 扩展。以下是 Python 解释器的结果:
>>> sys.path
['', '/usr/local/lib/python2.5/site-packages', '/opt/local/lib/python25.zip', '/opt/local/lib/python2.5', '/opt/local/lib/python2.5/plat-darwin', '/opt/local/lib/python2.5/plat-mac', '/opt/local/lib/python2.5/plat-mac/lib-scriptpackages', '/opt/local/lib/python2.5/lib-tk', '/opt/local/lib/python2.5/lib-dynload', '/opt/local/lib/python2.5/site-packages']
>>> from lehmer import rng
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name rng
>>> import lehmer.rngs
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named rngs
>>> import lehmer.rng
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named rng
>>> from lehmer import rngs
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name rngs
【问题讨论】:
其实你并不知道PYTHONPATH设置正确。您的本地目录始终位于 sys.path 列表的首位。你能运行 Python 并运行 'import sys;打印 sys.path` 并将其添加到您的问题中? 抱歉这个愚蠢的问题,但是 ImportError 的消息到底是什么? iirc ImportErrors 在加载扩展模块时抛出问题,因此可能是由于忘记链接库 fex 引起的。 哇!当我尝试再次导入它时,它神奇地起作用了。我发誓我没有碰任何东西,或者做任何与我一直在做的不同的事情......尽管我想我一定做了不同的事情。 Cookie 给任何可能提供解释的人。 :) 不是""总是在路径前吗? @mipadi:是的,'' 通常是第一个(并不总是,但通常是),这意味着在检查任何其他目录之前先检查本地目录以查找您的模块。开发人员经常在他们正在开发的同一个地方测试他们的导入,从而掩盖 PATH 问题。 【参考方案1】:为了记录(因为我厌倦了看到这个标记为未答复),这里有问题:
-
由于当前目录自动添加到 Python 包路径中,解释器首先在当前目录中查找包;由于某些 C 模块未在当前目录中编译,因此解释器找不到它们。 解决方案:不要从存储代码工作副本的同一目录启动解释器。
Distutils 没有在 OS X 上安装具有正确权限的模块。解决方案:修复权限。
【讨论】:
有没有办法确保安装以适当的权限继续进行,而不是事后更改它们? 是的,请定义正确的权限应该是什么以及 distutils 的作用。如果有 distutils 的 bug,应该报告给 bugs.python.org。以上是关于Python如何安装模块的主要内容,如果未能解决你的问题,请参考以下文章
怎么安装python模块,如何安装python模块,常用安装方式
怎么安装python模块,如何安装python模块,常用安装方式
怎么安装python模块,如何安装python模块,常用安装方式