2015-05-20 5 views
0

Я настроил переводчика в Pydev, который вызывает небольшой скрипт:Pydev вопросы вина PYTHONPATH/консольный проблема инициализации тайм-аута

#!/bin/bash 
WINEDEBUG=fixme-all WINEPREFIX=/home/dal/wine/Python wine C:\\Python27\\python.exe "[email protected]" 

, чтобы запустить экземпляр версии окна питона (что мне нужно в чтобы добраться до драйверов базы данных ODBC только для окон). Это хорошо работает, я могу запустить консоль, запустить скрипты с использованием этого интерпретатора и т. Д.

Однако - теперь мне нужно добавить ссылку на каталог, в котором хранится куча модулей, которые мне нужны для доступа, однако Windows-версия python хочет PYTHONPATH, у которого есть элементы, разделенные точками с запятой, и в формате Z: \ home \ blah \ в любом формате, а именно в colons и/home/blah/whatever.

Pydev не позволит мне добавлять произвольные пути в раздел настроек -> pydev -> interpers -> libraries (он хочет, чтобы я нашел путь в сборщике файлов, а затем создал строку/home/blah/whatever из что было выбрано).

Попытка использования вкладки среды для установки PYTHONPATH в $ {PYTHONPATH} \; Z: \ path \ I \ нуждается в результатах в pydev, говорящем мне забыть об этом (это не позволит мне установить PYTHONPATH именно из этого диалога).

Добавление PYTHONPATH=${PYTHONPATH}\;Z:\\path\\I\\need в скрипт, который вызывает версию окна питона через вино было последнее, что я мог думать, но это вызывает что-то плохое случится в PyDev:

Error initializing console. 
Unexpected error connecting to console. 
Failed to recive suitable Hello response from pydevconsole. Last msg received: Failed to read server's response: Connection refused 

Да, это не в состоянии Получать.

я могу вручную:

import sys 
sys.path.append(r'Z:\really\long\path\that\I\dont\want\to\type\often') 

и все будет работать, но ... Я бы очень хотел, чтобы не вводить, что каждый раз.

положить выше в файле и указав переменную окружения PYTHONSTARTUP на него решает эту проблему для экземпляра питона работает с терминала, но экземпляр питон работает внутри PyDev, кажется, не смотреть на PYTHONSTARTUP на всех

Прошли практически все идеи, которые я могу придумать в это время (не просто импортировать всю директорию модулей в каждый проект, над которым я работаю в pydev, что кажется ... неэлегантным, если не сказать больше), делает у кого-нибудь еще есть мысль о том, как продвигать эту конкретную квадратную привязку через круглое отверстие?

Обновление: папка модуля на самом деле смонтирована через sshfs, а с ней в pythonpath запуск экземпляра интерпретатора python с терминала несколько медленный (35sec ish). Попытка запустить консоль изнутри pydev, кажется, тайм-аут в < 15sec, поэтому мне интересно, нужно ли здесь то, что нужно здесь, - это просто способ увеличить время ожидания ответа от интерпретатора, который он пытается запустить, прежде чем отказаться от , и если сообщение «отказалось от соединения» в конце выходного фрагмента означает (как кажется, кажется, остальная часть этого фрагмента), «соединение не принималось до того, как я сдался» больше, чем «интерпретатор сказал мне, что явное соединение не собиралось случиться?

ответ

0

Я хотел бы попробовать поиграть с sys.path

import sys 
print sys.path # print a list of locations Python searches for modules 
sys.path.append('Z:\\path\\I\\need') 

# now import your modules 
import my_module 

Что касается вашего метода PYTHONPATH, вы также можете попробовать положить в одинарные кавычки - ваш текущий метод не избежать должным образом, и \\n интерпретируется как символ новой строки.

PYTHONPATH=${PYTHONPATH}\;'Z:\\path\\I\\need' 
+0

работ, но этот план, чтобы избежать необходимости делать это каждый раз, когда я открываю консоль:/ – Blair

+0

Изменено ответа относительно вашего 'PYTHONPATH' попытки –

+0

Пути был просто примером, фактические компоненты путей начинаются с ч, d , s, c и p - не думают *, любой из них превратился бы в ломающийся символ, как \\ n -> \ n. Также на самом деле использовали r'Z: \ some \ path ', чтобы немного сэкономить на изнашивании. - Я обновлю оригинальный вопрос, чтобы отразить это. – Blair