日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python中nomodulenamed怎么解决_关于 python ImportError: No module named 的问题

發(fā)布時(shí)間:2025/7/14 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中nomodulenamed怎么解决_关于 python ImportError: No module named 的问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天在 centos 下安裝 python setup.py install 時(shí)報(bào)錯(cuò):ImportError: No module named sysconfig,

當(dāng)時(shí)急著用,就順手直接源碼編譯了一把,make install 后就 ok 了。

然后又在 cygwin 下安裝時(shí)同樣的問題,這下 cygwin 源碼編譯也不行了,因?yàn)闀?huì)調(diào)用很多 linux 特有的類庫。

雖然最后解決了 import 的問題,但是又報(bào)了其它錯(cuò)。比如 ldconfig 啥的,可能是我cygwin環(huán)境沒裝全。

只有換方法:從cygwin開源鏡像上下載好 cygwin binary 版本的 python 2.7.3,

然后覆蓋到相應(yīng)的目錄即可。

事后我查了下 python 的import機(jī)制,以備忘:

python中,每個(gè)py文件被稱之為模塊,每個(gè)具有__init__.py文件的目錄被稱為包。只要模塊或者包所在的目錄在sys.path中,就可以使用import 模塊或import 包來使用。

如果想使用非當(dāng)前模塊中的代碼,需要使用Import,這個(gè)大家都知道。

如果你要使用的模塊(py文件)和當(dāng)前模塊在同一目錄,只要import相應(yīng)的文件名就好,比如在a.py中使用b.py:

import b

但是如果要import一個(gè)不同目錄的文件(例如b.py)該怎么做呢?

首先需要使用sys.path.append方法將b.py所在目錄加入到搜素目錄中。然后進(jìn)行import即可,例如

import sys

sys.path.append('c:\xxxx\b.py') # 這個(gè)例子針對(duì) windows 用戶來說的

大多數(shù)情況,上面的代碼工作的很好。但是如果你沒有發(fā)現(xiàn)上面代碼有什么問題的話,可要注意了,上面的代碼有時(shí)會(huì)找不到模塊或者包(ImportError: No module named xxxxxx),這是因?yàn)?#xff1a;

sys模塊是使用c語言編寫的,因此字符串支持 '\n', '\r', '\t'等來表示特殊字符。所以上面代碼最好寫成:

sys.path.append('c:\\xxx\\b.py')

或者sys.path.append('c:/xxxx/b.py')

這樣可以避免因?yàn)殄e(cuò)誤的組成轉(zhuǎn)義字符,而造成無效的搜索目錄(sys.path)設(shè)置。

但上述方法是針對(duì)腳本來說的,每次使用要記得加上,如果永久性的加入某個(gè)目錄到sys.path中去呢?

如何將路徑“永久"添加到sys.path?

sys.path是python的搜索模塊的路徑集,是一個(gè)list

可以在python 環(huán)境下使用sys.path.append(path)添加相關(guān)的路徑,但在退出python環(huán)境后自己添加的路徑就會(huì)自動(dòng)消失了!

可以使用以下命令輸入當(dāng)前python 的搜索路徑:

python -c"import sys;print '當(dāng)前的python是:'+sys.prefix;print '\n'.join(sys.path)"

練習(xí)使用sys.path.append方法添加路徑,顯示退出python會(huì)消失!

python -c"import sys;print '當(dāng)前的python是:'+sys.prefix;sys.path.append(r'E:\DjangoWord');print '\n'.join(sys.path)"

再次運(yùn)行,會(huì)發(fā)現(xiàn) 自己添加路徑E:\DjangoWord()不存在了!

python -c"import sys;print '當(dāng)前的python是:'+sys.prefix;print '\n'.join(sys.path)"

為解決這個(gè)問題,可以有以下方法:

將自己做的py文件放到 site_packages 目錄下:

下面命令顯示了 site-packages 目錄:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

但是這樣做會(huì)導(dǎo)致一個(gè)問題,即各類模塊都放到此文件夾的話,會(huì)導(dǎo)致亂的問題,這一點(diǎn)是顯而易見的。

注意,也不創(chuàng)建子文件夾,再將自己的模塊放到子文件夾解決問題,這會(huì)導(dǎo)致使用import 語句時(shí)錯(cuò)誤。

使用pth文件,在 site-packages 文件中創(chuàng)建 .pth文件,將模塊的路徑寫進(jìn)去,一行一個(gè)路徑,以下是一個(gè)示例,pth文件也可以使用注釋:

# .pth file for the? my project(這行是注釋)

E:\DjangoWord

E:\DjangoWord\mysite

E:\DjangoWord\mysite\polls

這個(gè)不失為一個(gè)好的方法,但存在管理上的問題,而且不能在不同的python版本中共享。

使用PYTHONPATH環(huán)境變量,在這個(gè)環(huán)境變量中輸入相關(guān)的路徑,不同的路徑之間用逗號(hào)(英文的!)分開,如果PYTHONPATH 變量還不存在,可以創(chuàng)建它!如下圖所示:

這里的路徑會(huì)自動(dòng)加入到sys.path中,而且可以在不同的python版本中共享,應(yīng)該是一樣較為方便的方法。

關(guān)于與python相關(guān)的環(huán)境變量有那些,請(qǐng)參考:

以下是該環(huán)境變量的描述:

PYTHONPATH?

Augment the default search path for module files. The format is the same asthe shell’s?PATH: one or more directory pathnames separated byos.pathsep?(e.g. colons on Unix or semicolons on Windows).Non-existent directories are silently ignored.

In addition to normal directories, individual?PYTHONPATH?entriesmay refer to zipfiles containing pure Python modules (in either source orcompiled form). Extension modules cannot be imported from zipfiles.

The default search path is installation dependent, but generally begins withprefix/lib/pythonversion?(see?PYTHONHOME?above). Itis?always?appended to?PYTHONPATH.

An additional directory will be inserted in the search path in front ofPYTHONPATH?as described above underInterface options. The search path can be manipulated fromwithin a Python program as the variable?sys.path.

附:python安裝模塊的多種方法

1、自己寫的模塊,可以直接添加到路徑下。這樣就可以直接調(diào)用。

import sys

sys.path.append("/home/username/")

2、單文件模塊

直接把文件拷貝到$python_dir/lib

3、網(wǎng)上下載的第三方庫,一般解壓后,找setup.py文件

運(yùn)行python setup.py install

4、 egg文件

1) 下載ez_setup.py,運(yùn)行python ez_setup

2) easy_install *.egg

5、pip安裝方法

Pip 是安裝python包的工具,提供了安裝包,列出已經(jīng)安裝的包,升級(jí)包以及卸載包的功能。

Pip 是對(duì)easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安裝的包也同樣可以使用pip進(jìn)行安裝。

安裝Pip

Pip的安裝可以通過源代碼包,easy_install或者腳本。

下面介紹一下各種安裝方法:

源代碼方式:

$ wget https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz (替換為最新的包)

$ tar xzf pip-1.2.1.tar.gz

$ cd pip-1.2.1.tar.gz

$ python setup.py install

easy_install:

$ easy_install pip

get_pip.py 腳本:

$ curl -0 https://raw.github.com/pypa/pip/master/contrib/get-pip.py

$ sudo python get-pip.py

OK, 下面來看一下Pip的使用

安裝package

$ pip install Markdown

列出安裝的packages

$ pip freeze

安裝特定版本的package

通過使用==, >=, <=, >,

$ pip install 'Markdown<2.0'

$ pip install 'Markdown>2.0,<2.0.3'

升級(jí)包

升級(jí)包到當(dāng)前最新的版本,可以使用-U 或者 --upgrade

$ pip install -U Markdown

卸載包

$ pip uninstall Markdown

查詢包

pip search "Markdown"

6、特殊庫的安裝(一個(gè)科學(xué)計(jì)算庫Enthought Python Distribution的安裝)

Enthought Python Distribution在ubuntu下安裝的測(cè)試,應(yīng)一個(gè)網(wǎng)友的請(qǐng)求,問怎么安裝這個(gè)庫,從官方網(wǎng)站上下載了一個(gè)文件

epd_free-7.3-2-rh5-x86.sh,遮個(gè)文件是sh 格式的文件,用sudo bash epd_free-7.3-2-rh5-x86.sh 運(yùn)行這個(gè)文件,出現(xiàn)很多權(quán)限的閱讀,點(diǎn)回車,不要連續(xù)點(diǎn)

需要點(diǎn)一次看一下,最后出現(xiàn)一個(gè)同一不同一它的版權(quán)聲明,輸入"yes",再下來是讓選擇安裝的目錄,點(diǎn)回車,就安裝在當(dāng)前目錄下。

這樣就安裝好了。

當(dāng)前目錄下輸入

>>> ipython --pylab

就出來

Python 2.7.3 (default, Apr 20 2012, 22:44:07)

Type "copyright", "credits" or "license" for more information.

IPython 0.12.1 -- An enhanced Interactive Python.

? ? ? ? ? -> Introduction and overview of IPython's features.

%quickref -> Quick reference.

help ? ? ?-> Python's own help system.

object? ? -> Details about 'object', use 'object??' for extra details.

Welcome to pylab, a matplotlib-based Python environment [backend: TkAgg].

For more information, type 'help(pylab)'.

再這樣調(diào)用。這個(gè)庫由于我工作上用不上,所以也不需要進(jìn)一步的研究。

In [1]: from scipy import *

In [2]: a=zeros(1000)

In 3]: a[:100]=1

In [4: b=fft(a)

In [5]: plot(abs(b))

REF:

無法import的原因(ImportError: No module named *****)

近期python 學(xué)習(xí)的一些總結(jié):添加路徑到sys.path

總結(jié)

以上是生活随笔為你收集整理的python中nomodulenamed怎么解决_关于 python ImportError: No module named 的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人三级黄色 | www.日批 | 三上悠亚在线播放 | 日韩中文字幕视频在线观看 | av大片在线看 | 亚洲精品久久久久久 | 亚洲伦理一区二区三区 | 欧美顶级少妇做爰 | 欧美片网站yy | 一区二区三区毛片 | 午夜激情在线播放 | 国产美女黄色 | 日韩av女优在线观看 | 嫩草国产精品 | 色吧综合网 | 久久国产片 | 中文国产在线观看 | 呦女精品 | 成人福利在线看 | 欧美久久激情 | 欧美亚洲大片 | 小香蕉影院 | 国产亚洲视频在线 | 国产视频三级 | 一级久久久久久久 | 免费黄色国产视频 | 精品久久久久久久久久 | 午夜婷婷网| 国产91视频在线 | 成人在线免费电影 | 欧美a一级片 | 成人黄色在线 | 中国a毛片| 亚洲综合久久网 | 精品无码黑人又粗又大又长 | 精品少妇人妻av免费久久洗澡 | 天海翼视频在线观看 | 久草青青视频 | 午夜青青草 | av精选| 欧美日韩一区二区视频观看 | 青青草毛片 | 羞羞的视频在线观看 | 亚洲无码乱码精品国产 | 黑人超碰 | 亚洲av日韩av高潮潮喷无码 | 午夜毛片在线 | 寡妇av | 免费一级片网站 | 日韩大片在线 | 国产做爰视频免费播放 | 新av在线 | 不卡影院av| 国产精品三级久久久久久电影 | 国产午夜精品视频 | 69亚洲精品 | 中文字幕理伦片免费看 | 精国产人伦一区二区三区 | 日韩和一区二区 | 日韩美女在线 | 人人射视频 | 丰满少妇一区二区三区专区 | 日韩精品一区二区三区中文字幕 | 色哟哟精品观看 | 日本国产一区二区三区 | 国产精品久久久久久三级 | 国产调教视频在线观看 | 91黄色影视 | 日本乱轮视频 | 国产一区二区激情 | 传媒视频在线观看 | 国产一级视频在线播放 | 大尺度做爰呻吟舌吻网站 | 日韩精品电影网 | 97色伦97色伦国产欧美空 | 日韩爱爱爱| 久久久一级黄色片 | 国产黄片一区二区三区 | 91免费看国产 | 影音先锋在线观看视频 | 96精品| 天堂综合网久久 | 日韩五月天 | 久久成人亚洲 | 国产精品人八做人人女人a级刘 | 疯狂做受xxxx国产 | 日本女人一级片 | 韩国伦理片在线看 | 色香av| 国产免费av观看 | 久草精品视频在线观看 | 人妻少妇无码精品视频区 | 美女裸体网站久久久 | 亚洲国产97| 日日干日日操 | 极品粉嫩小仙女高潮喷水久久 | 久久激情综合网 | 成人公开视频 | 国产丝袜美腿一区二区三区 |