Форум сайта python.su
Всем доброго времени суток…
Целевая ОС: WinXP/7 ; Python 2.7.1 ; PyQt-Py2.7-x86-gpl-4.8.3-1 ; wxPython2.9-win32-2.9.1.1-py27 ; Spider IDE (2.0.10_py27) ; winpdb-1.4.8
Особенно хотелось бы прочитать советы людей которые собственно используют Spider IDE как среду разработки… Хотя судя по всему она особой популярностью не пользуется :)
Хотя на вопросы котрые я задам далее смогут верояно дать ответы все опытные Python-программисты.
Инетерес можно так сказать “спортивный”. Python изучаю недавно, за плечами C++, Java(посредственно), С#, VB.NET, Ruby (так-же как и Python - недавно)
Лично мне из всех IDE которые успел попробовать, а я “прошелся чесом” по первой части списка… и даже столь любимый мной по Ruby и Java - NetBeans оказался жутким “УГ” относительно Python, в плане автокомплита у большей части из них не хватало силенок даже для os.getcwd ^_^ я уж и не говорю про какую-то реакцию на import, Рефакторинг - плох у всех… и т.д.
(PS: Из всех самое удобное - PyScripter, но он не удовлетворял потребностей кросплатформенности, Ninja-IDE - неплохо , но автокомлит и “utf-8” подкачали)
Милее всех оказался Spider IDE - очень неплохо… ; Всё остальное “жесть” (KOMODO даже пробовать не стал в силу “платности” сего)
Так вот…
“Ларчик-то просто открывался” это не про Spider IDE, изначально он вообще не везде хотел работать и пришлось дебажить его чтобы выявить его интересную особенность создавать свою рабочую директорию в …Documents and Settings\%USER%\.spyder2\ отсюда в силу плохих отношений Python с кирилицей - работать из-под русскоязычных юзеров, отказывался…
пришлось поравить ему “мозги” и перенести директорию поближе к питону, напрямую указав пути…
Пробема #2
Несмотря на мануал самого Spider - , тем более что среди настроек (\.spyder2\.spyder.ini) присутствует “editor/debug with winpdb = ‘F7’”
winpdb установлен в соответсвии с мануалом:ъ
…Enter the new folder from a CMD terminal window and type: python.exe setup.py installИ все равно, как ни крути находясь в IDE Spyder в ответ на F7 нас ожидает “тишина и спокойтвие”
# from editor.py line 70
WINPDB_PATH = programs.get_nt_program_name('winpdb')
# from programs.py line 14
# needed imports:
# import os, sys, subprocess, imp, os.path as osp
def get_nt_program_name(name):
"""Return Windows-specific program name, i.e. adding '.bat' or '.exe'"""
if os.name == 'nt':
for ext in ('.exe', '.bat'):
if is_program_installed(name+ext):
return name+ext
return name
# from programs.py line 22
# needed imports:
# import os, sys, subprocess, imp, os.path as osp
def is_program_installed(basename, get_path=False):
"""Return True if program is installed and present in PATH"""
for path in os.environ["PATH"].split(os.pathsep):
abspath = osp.join(path, basename)
if osp.isfile(abspath):
if get_path:
return abspath
else:
return True
else:
return False
# from editor.py line 1659
def run_winpdb(self):
"""Run winpdb to debug current file"""
if self.save():
fname = self.get_current_filename()
programs.run_program(WINPDB_PATH, [fname])
# from programs.py line 34
# needed imports:
# import os, sys, subprocess, imp, os.path as osp
def run_program(name, args=[]):
"""Run program in a separate process"""
assert isinstance(args, (tuple, list))
path = is_program_installed(name, get_path=True)
if not path:
raise RuntimeError("Program %s was not found" % name)
subprocess.Popen([path]+args)
Офлайн
is_program_installed - ищет basename во всех путях объявленных в PATH, с параметром get_path - возвращает полный путь
get_nt_program_name - ищет, используя is_program_installed, сначала winpdb.exe, потом winpdb.bat
У вас путь к winpdb в PATH прописан?
PS: на всякий случай Мой компьютор -> Свойства -> Дополнительно -> Переменные окружения
Отредактировано (Апрель 11, 2011 09:03:34)
Офлайн
Да, спасибо… оно и есть. Как раз за это время я успел подетальней поковыряться… Оказалась проблемма действительно в Path…
там необходимо было прописать путь к winpdb.bat, т.е. путь до каталога …\Scripts в моем случае “X:\Python\Python2.7\Scripts\”
более того для успешного выполнения этой задачи необходимо чтобы еще и сам путь к корню установленого Python там-же фигурировал.. т.е. в моем случае “X:\Python\Python2.7\”
если его там нет, то мы нарывемся на банальное “python не является программой или пакетным файлом…” в окне cmd
Самое поразительное что ни исталятор самого Python, ни исталятор winpdb об этом не позаботились.
Я уже позже обратил внимание на
def is_program_installed(basename, get_path=False):
"""Return True if program is installed and present in PATH"""
for path in os.environ["PATH"].split(os.pathsep):
Отредактировано (Апрель 11, 2011 09:27:36)
Офлайн