2013-08-29 1 views
0

У меня есть программа на Python, которая отлично работает. Когда я перевести программу на другую машину и попытаться запустить его там, я получаю следующее сообщение об ошибке:Передача кода Python на другой компьютер - перестает работать

Traceback (most recent call last): 
    File "program1.py", line 3, in <module> 
    import scipy.spatial as sp 
    File "/usr/lib/python2.6/dist-packages/scipy/spatial/__init__.py", line 7, in <module> 
    from ckdtree import * 
    File "numpy.pxd", line 30, in scipy.spatial.ckdtree (scipy/spatial/ckdtree.c:6087) 
ValueError: numpy.dtype does not appear to be the correct type object 

Является ли это результатом новой машины, не имея установки или что-то нужные модули, как это ?

Спасибо!


Компьютер, который запускает код: Python - 2.7.3 Numpy - 1.7.1 SciPy - 0.12.0

Компьютер, который выдает сообщение об ошибке выше: Python - 2.6.5 Numpy - 1.5.1 Scipy - 0.7.0

Конечно, в идеале они были бы такими же, но я не могу изменить версии на второй машине. Можно ли определить, какая версия вызывает проблему?

+6

есть ли новая машина одни и те же модули? Те же версии? Это не то, что люди здесь могут вам рассказать! Имеет ли она даже ту же версию Python? – Ben

+0

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

+1

Уверен, что если вы сможете открыть интерпретатор Python, он расскажет вам, какую версию Python вы используете. Затем, если вы импортируете numpy, набрав 'numpy.version' в интерпретаторе, вы скажете, какую версию numpy вы используете. Сделайте это на обеих машинах, и поскольку ваша проблема, кажется, в scipy, тоже стоит проверить это. – Ben

ответ

1

Чтобы узнать, откуда исходит ошибка, используйте первую машину для понижения, numpy, scipy и python. попробуйте разные комбинации, чтобы воспроизвести ту же ошибку.

Я предлагаю иметь те же версии на вашем компьютере-разработчике, что и на машине, которую вам необходимо установить. Таким образом, у вас не будет подобных проблем.

Вы можете использовать пип и virtualenv так конфиг для этого проекта не будет влиять на остальную часть вашей установки

1

У меня была такая проблема некоторое время назад. Был возиться с virtualenv и получил ошибку, похожую на вашу. Скорее всего, из-за версии. Некоторые модули могут столкнуться.