webdevqa.jp.net

Python OSXのシェルに "b"文字を入力できません

Python OS Xのシェルの「b」文字に問題があります。「b」と入力できませんが、「B」は正常に機能しました。

この問題を解決するにはどうすればよいですか?

8
Sam

.pythonstartupの問題のある行は次のようなものです。

 readline.parse_and_bind("bind ^I rl_complete") # darwin libedit

この.pythonstartupはそれを修正します...

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")
9
Gregg Lind

まず、これはpython 2.7.1から2.7.3に更新するまで発生しませんでした。とはいえ、修正は次の行にあります。

古い行:

if(sys.platform == 'darwin'): #FIX

改行:

if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX

私の〜/ .pythonrcの完全なコード

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
2
GodOfWare

同じ問題があります。これは、SnowLeopardでMacPortsバージョンのPythonを使用する場合に発生します。

この問題は、Mac OSXに付属しているAppleのPython)には見られません。したがって、回避策は、MacPortsのパッケージを指すPYTHONPATHを設定することです。

/opt/local/lib/python/site-packages:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/ 

(または別のPythonバージョン)そしてAppleのPythonを使用します。

1
Kota

残念ながら、回避策は賢明なものではありません。

Appleは、アップグレードやその他の機能を実行するときに、バージョンが変更されていないと想定しています。代わりに、pythonをアップグレードまたは拡張する場合は、/optまたはホームフォルダーの下にローカルバージョンをインストールすることをお勧めします。

私も同じ問題を抱えており、MacPortsバージョンのPythonを使用していません。


最新のMacBookAir(第3世代)で実行されているMac OX X Lionで www.vpython.org の最新バージョンのvpython、ビジュアルpythonを使用しています。

最新のバイナリとその手順を使用してvpythonをインストールしました。インストーラーが付属しているので、ポイントアンドクリックです。これはPython2.7.1。32ビットバージョンです(64ビットに移植されていないと思います)の修正バージョンです。次にVPython-Mac-Py2.7-をインストールしました。 5.71。これに続いて www.scipy.org のscipyと matplotlib.sourceforge.net のmatplotlibが続きます。これらのインストールはすべてインストーラーを使用します。

開発ツール(アイドル)またはvpythonバリアント(vidle)からpythonを実行しても、問題はありません。ターミナルを開いてpython from bashシェルの場合、シェルはキーボードの「b」キーを認識しません。「文字b」を入力する代わりに「ベル」音が鳴ります。ただし、文字「B」を入力することはできます。このキーは、表示されていない誤った「文字」、おそらく古いASCIIコードの「ベル」文字」にマップされます。

エミュレーションをxterm、vt100、vt102に変更してみました。また、UTF-8を使用するなど、さまざまなエンコード方式で遊んだ。また、command-bなどの特殊キーのさまざまな組み合わせを押しました。何も機能しませんでした。

私の唯一の回避策は、アイドル状態またはビドルからスクリプトを作成することです。

これが問題の明確化に役立つことを願っています。

1
g a mercier