標籤:python
要能夠使用import tab,最主要的是要有readline模組。預設python2.6雖然沒有裝tab模組,但是裝了readline模組的。如下:
[[email protected] robin]# python2.6
Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tab
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named tab
>>> import readline
>>>
而python2.7預設tab模組和readline模組都沒有安裝
[[email protected] robin]# python
Python 2.7.5 (default, Apr 16 2015, 15:21:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tab
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named tab
>>> import readline
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named readline
python2.6能夠import readline成功的原因是因為有這個模組:/usr/lib64/python2.6/lib-dynload/readline.so (預設安裝就有的),python2.7.5不能import readline成功的原因就是沒有這個模組。所以將這個模組cp到python2.7的相關目錄下既可以了。操作如下:
[[email protected] lib-dynload]# cp /usr/lib64/python2.6/lib-dynload/readline.so /usr/local/lib/python2.7/lib-dynload/
[[email protected] lib-dynload]# python
Python 2.7.5 (default, Apr 16 2015, 15:21:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import readline
>>>
然後在/usr/local/lib/python2.7/site-packages 添加一個tab.py檔案即可使用import tab,內容如下;
[[email protected] site-packages]# pwd
/usr/local/lib/python2.7/site-packages
[[email protected] site-packages]# cat tab.py
try:
import readline
except ImportError:
print("Module readline not available.")
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
進行測試:
>>> import readline
>>> import tab
>>> import os
>>> os.w
os.wait( os.wait3( os.wait4( os.waitpid( os.walk( os.write(
python中使用tab補全