Python-код, который не работает из командной строки - PullRequest
1 голос
/ 24 сентября 2010

Модуль, который я написал (test.py) на Python 2.6, может быть импортирован и отлично запущен из Python IDLE с помощью команд:

import test
test.run_test_suite()

Однако, если я использую команду "python test.py" в командной строке, она, по-видимому, вылетает (согласно traceback) в команде "import os".

Как видно из приведенного ниже кода, при запуске из командной строки он должен работать так же, как при запуске внутри IDLE. Почему бы не запустить это на холостом ходу проблемы? Мой google-foo может показывать результаты только тогда, когда код запускается из командной строки, но не в режиме IDLE.

if __name__ == "__main__":
    table = run_test_suite()
    print '---=== Results ===---'
    print_table(table)

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

Полный возврат:

Traceback (most recent call last):
  File "...\Python\test.py", line 170, in <module>
    print '---=== Results ===---'
  File "...\Python\test.py", line 160, in build_data
    if Links == False:
  File "...\Python\test.py", line 103, in load_table
    if Abbrev[M.solution_type()] == 'pos':
  File "...\Python\test.py", line 85, in build_example
    import os
  File "SnapPy.pyx", line 173, in snappy.SnapPy.uFatalError (SnapPy.c:5507)
snappy.SnapPy.SnapPeaFatalError: 
SnapPea crashed in function cusp_modulus(), defined in cusp_modulus.c.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2010

Найдите файл с именем os.py в вашем текущем рабочем каталоге. Если у вас есть, переименуйте его. Или проверьте документацию Python на «абсолютный импорт».

0 голосов
/ 24 сентября 2010

Используете ли вы ту же версию Python в обоих случаях? При запуске из командной строки вы получаете первый Python на своем пути, в то время как IDLE, скорее всего, выполняется непосредственно из ярлыка.
Если на вашем компьютере установлено более одной версии python, это может быть осуществлено в двух разных средах.

...