Вопрос

ПРАВКА-4

Я запустил свой sitecustomize.py для выполнения, но он выдает ошибку. Вот код за это.

Ошибка заключается в:

Error in sitecustomize; set PYTHONVERBOSE for traceback:
RuntimeError: maximum recursion depth exceeded while calling a Python object

Я еще не очень хорошо разбираюсь в Python, поэтому решил закомментировать только те строки, которые, по моему мнению, мне не понадобятся.Проблем с кодировкой не обнаружено, поэтому я просто закомментировал строки 23-104, но это тоже не помогло.

ПРАВКА-3

У меня также была установлена версия 2.5.1, поэтому я скомпилировал с ней другой скрипт.

print 'This will test carriage returns on Windows with PyDev on Eclipse Helios'
print'Type something:',
test = raw_input()
print('You entered the following ascii values:')
for c in test:
    print(str(ord(c)))

Это прошло нормально и привело к

This will test carriage returns on Windows with PyDev on Eclipse Helios
Type something: g
You entered the following ascii values:
103

Так это, возможно, только для Python3?Я знаю, что это не интерпретатор, потому что я могу запустить его в командной строке просто отлично.Что это дает?

ПРАВКА-2

Только что протестирован с Helios, все та же проблема.Вот моя тестовая программа:

print('This will test carriage returns on Windows with PyDev on Eclipse Helios.')
print('Type something:', end='')
test = input()
print('You entered the following ascii values:')
for c in test:
    print(str(ord(c)))

И вот результат, когда я набираю "g" и нажимаю Enter:

This will test carriage returns on Windows with PyDev on Eclipse Helios.
Type something:g
You entered the following ascii values:
103
13

По большому счету, это небольшая проблема.Я мог бы использовать input().rstrip() и это работает.Но обходной путь даже не должен быть необходимым.Я печатаю в два раза больше, чем мне нужно, на языке, который я использую, потому что он лаконичный и красивый.

ПРАВКА-1

Это Eclipse 3.5.К сожалению, это последняя версия, которая была одобрена для использования на работе.Я собираюсь попробовать 3.6 дома, чтобы посмотреть, отличается ли это как-то, но я все равно не смог бы им пользоваться.


(первоначальный вопрос)

Я изучал некоторые основы Python и решил перейти на PyDev, поскольку он поддерживает Python 3, а также обладает всеми приятными функциями фрагмента кода и автозаполнения.

Тем не менее, я столкнулся с этой проклятой проблемой возврата каретки в Windows.

Мои поиски всегда возвращают меня к этому списку рассылки:http://www.mail-archive.com/python-list@python.org/msg269758.html

Итак, я взял файл sitecustomize.py, попытался включить его в путь Python для моего настроенного интерпретатора, а также для моего проекта, но безрезультатно.

Кому-нибудь еще удалось справиться с этим?Или, может быть, знает, как заставить new sitecustomize.py фактически выполняться, чтобы он мог переопределять input() и raw_input()?

Я знаю, что всегда мог бы создать короткий модуль со своей собственной функцией замены input(), но мне бы действительно хотелось устранить проблему в корне.Aptana признает эту проблему ( http://pydev.org/faq.html#why_raw_input_input_does_not_work_correctly ), но не предлагает никакого решения.Заранее благодарю за вашу помощь.

Это было полезно?

Решение

Придумал способ заставить его работать локально в моей установке Python.В сайт-пакеты \Либ\\ сделайте сценарий под названием "sitecustomize.py" и поставил этот код в нем:

original_input = builtins.input

def input(prompt=''):  
    return original_input(prompt).rstrip('\r')

input.__doc__ = original_input.__doc__

builtins.input = input

Я ничего не знаю о побочных эффектах этого или о том, какую проверку ошибок я должен выполнять, но это работает, если вы используете PyDev в Windows для написания сценариев с помощью Python3.

Другие советы

Узнал еще кое-что о sitecustomize.py и как это связано с site.py.

Я не знаю, как добавить свой собственный sitecustomize.py в PYTHONPATH для выполнения только в проекте PyDev, поэтому я просто вставил его в $ {Python31dir} \Libs \site-packages.Модуль запускается сейчас, но выдает ошибки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top