【发布时间】:2015-03-06 14:21:56
【问题描述】:
我一直在学习 python,但我的一个系统上的 Python 交互式 shell 存在问题。它在每个 python-interactive-mode 启动时运行一个脚本(不带参数)。不知道去哪里找做这个的进程,我在这个系统上编了很多小脚本,也能看到什么脚本乱七八糟的,
当我这样做时:
user@Host ~/Python Scripts> python
我明白了:
Python 3.4.2 (default, Feb 21 2015, 22:19:02)
[GCC 4.9.2 20150212 (Red Hat 4.9.2-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
# ! / u s r / b i n / e n v p y t h o n
finished
Failed calling sys.__interactivehook__
Traceback (most recent call last):
File "/usr/local/opt/python-3.4.2/lib/python3.4/site.py", line 396, in register_readline
import rlcompleter
File "/usr/local/opt/python-3.4.2/lib/python3.4/rlcompleter.py", line 161, in <module>
readline.set_completer(Completer().complete)
AttributeError: 'module' object has no attribute 'set_completer'
>>> quit()
这是我运行的文件,在每次 python 启动时运行:
#!/usr/bin/env python
try:
number = int(input("Enter a number: "))
print(number)
aFile = open('modules.py')
for i in aFile:
print(aFile.readline(), end=' ')
except ValueError:
print('Not a number, please re-enter:')
number = int(input('Enter a number: '))
print(number)
except IOError:
print('Cannot open file')
print('finished')
这是什么原因造成的,我该如何解决?
编辑#1
系统是 Fedora 21,文件 modules.py 和在交互式 shell 启动时运行的脚本是从未在 Windows 系统上编辑过的脚本。
系统已 11 天未重新启动。
这里是:
~/Python Scripts> file tryexcept.py
tryexcept.py: Python script, ASCII text executable
编辑#2
我的当前工作目录中有一个 readline.py:
~/Python Scripts> ls | grep readline
readline.py
【问题讨论】:
-
您是否在 Windows 机器上编辑/写入了该文件?
file <that-script>说什么? -
不相关但你可以
print(i, end=' '),你已经在遍历文件对象,你也应该关闭文件或使用with打开它 -
@EtanReisner 我会编辑我的问题,我忘了通知系统,我会添加。