Tôi gặp vấn đề với chữ "b" trong shell Python trong OS X. Tôi không thể gõ "b", nhưng "B" hoạt động tốt.
Làm thế nào tôi có thể giải quyết vấn đề này?
Tôi gặp vấn đề với chữ "b" trong shell Python trong OS X. Tôi không thể gõ "b", nhưng "B" hoạt động tốt.
Làm thế nào tôi có thể giải quyết vấn đề này?
Câu trả lời:
Dòng có vấn đề trong bạn .pythonstartup
là một cái gì đó như:
readline.parse_and_bind("bind ^I rl_complete") # darwin libedit
Điều này .pythonstartup
sẽ khắc phục nó ...
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
if 'libedit' in readline.__doc__:
readline.parse_and_bind("bind ^I rl_complete")
else:
readline.parse_and_bind("tab: complete")
Đầu tiên, điều này đã không xảy ra cho đến khi tôi cập nhật python 2.7.1 lên 2.7.3. Điều đó nói rằng, sửa chữa là trên dòng:
dòng cũ:
if(sys.platform == 'darwin'): #FIX
dòng mới:
if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX
Mã đầy đủ trong ~ / .pythonrc của tôi
import atexit
import os
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
import sys
if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX
# OSX
readline.parse_and_bind ("bind ^I rl_complete")
else:
# Linux
readline.parse_and_bind("tab: complete")
historyPath = os.path.expanduser("~/.pyhistory")
def save_history(historyPath=historyPath):
readline.write_history_file(historyPath)
if os.path.exists(historyPath):
readline.read_history_file(historyPath)
atexit.register(save_history)
del atexit, save_history, historyPath
Tôi có cùng một vấn đề. Điều này xảy ra khi bạn sử dụng phiên bản MacPorts của Python trong Snow Leopard.
Tôi không thấy vấn đề này trong Python của Apple đi kèm với Mac OS X. Vì vậy, cách giải quyết là phải đặt PYTHONPATH
trỏ đến các gói của MacPorts:
/opt/local/lib/python/site-packages:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/
(hoặc một phiên bản Python khác) và sử dụng Python của Apple.
Thật không may, cách giải quyết không phải là một cách khôn ngoan.
Apple giả định rằng phiên bản của nó không thay đổi khi thực hiện nâng cấp và các chức năng khác. Thay vào đó, bạn nên nâng cấp python hoặc mở rộng nó mà bạn cài đặt một phiên bản cục bộ, dưới /opt
hoặc thư mục nhà của bạn.
Tôi cũng gặp vấn đề tương tự và tôi không sử dụng phiên bản Macthon của python.
Tôi đang sử dụng phiên bản mới nhất của vpython
python trực quan, từ www.vpython.org trong Mac OX X Lion đang chạy trong MacBook Air mới nhất (thế hệ 3).
Tôi đã cài đặt vpython bằng cách sử dụng nhị phân mới nhất của họ và sử dụng hướng dẫn của họ. Nó đi kèm với một trình cài đặt để nó là điểm và nhấp chuột. Đây là phiên bản sửa đổi của Python 2.7.1. Nó là phiên bản 32 bit. (Tôi tin rằng họ đã không chuyển nó thành 64 bit). Sau đó tôi đã cài đặt VPython-Mac-Py2.7-5.71. Tôi đã làm theo điều này bởi scipy từ www.scipy.org và matplotlib từ matplotlib.sourceforge.net Tất cả các cài đặt này đều sử dụng trình cài đặt.
Khi tôi chạy python khỏi công cụ phát triển của chúng, nhàn rỗi hoặc biến thể vpython, vidle, tôi không gặp vấn đề gì. Nếu tôi mở một thiết bị đầu cuối và chạy python từ shell bash, shell sẽ không nhận ra phím "b" trong bàn phím. Nó sẽ cung cấp cho bạn âm thanh 'chuông', thay vì nhập 'ký tự b'. Tuy nhiên, bạn có thể nhập chữ 'B'. Có vẻ như khóa này được ánh xạ tới một số 'ký tự' không hiển thị không chính xác, có thể là ký tự 'chuông' trong mã ASCII cũ.
Tôi đã thử thay đổi mô phỏng thành xterm, vt100, vt102. Tôi cũng đã chơi với các sơ đồ mã hóa khác nhau như chỉ sử dụng UTF-8. Tôi cũng nhấn tổ hợp các phím đặc biệt khác nhau như lệnh-b, v.v. Không có gì hoạt động.
Cách giải quyết duy nhất của tôi là viết các kịch bản không hoạt động hoặc vidle.
Tôi hy vọng điều này sẽ giúp làm rõ vấn đề.