2
Я бегу SymPy на внешнем компьютере, но когда я делаю простой командуSymPy «не все аргументы преобразуются во строке форматирования» при использовании нулей ((п, п))
M=sympy.zeros((2,2))
Я получаю ошибку
Traceback (most recent call last):
File "test.py", line 8, in <module>
M=sp.zeros((2,2))
File "/apps/brussel/magnycours/software/sympy/0.7.6-intel-2015a-Python-2.7.9/lib/python2.7/site-packages/sympy/matrices/dense.py", line 1229, in zeros
return cls.zeros(r, c)
File "/apps/brussel/magnycours/software/sympy/0.7.6-intel-2015a-Python-2.7.9/lib/python2.7/site-packages/sympy/matrices/dense.py", line 513, in zeros
r = as_int(r)
File "/apps/brussel/magnycours/software/sympy/0.7.6-intel-2015a-Python-2.7.9/lib/python2.7/site-packages/sympy/core/compatibility.py", line 389, in as_int
raise ValueError('%s is not an integer' % n)
TypeError: not all arguments converted during string formatting
Однако, когда я запускаю его на своем компьютере, проблем нет. Как я могу это исправить?
Версия на моем компьютере - 0.7.1.rc1, а одна на кластере - 0.7.6. Должен ли я попросить их установить (более старую?) Версию или есть более легкое решение?
небось 'функция sympy.zeros' имеет различные аргументы в версии на кластере. Я бы посмотрел документы API для '0.7.6', чтобы посмотреть, что он должен делать. –
Ваша фактическая ошибка - это значение «ValueError», отображаемое в трассировке стека. Во время построения сообщения об ошибке «TypeError» поднимается. Предположительно, потому что n является кортежем, но ожидается, что он будет целым числом. – swenzel
Спасибо, это было очень простое решение, теперь оно работает без проблем. Синтаксис действительно отличается между двумя версиями (что imo довольно заторможено, новая версия должна, по крайней мере, иметь возможность распознавать и уведомлять, когда вы пытаетесь использовать старый синтаксис вместо того, чтобы бросать критические сообщения об ошибках). –