Поскольку работает «hello world», я считаю, что использование anaconda3 python не является проблемой.
Ваше предположение неверно.
Существует несколько способов решения проблемы, но все они сводятся к использованию правильного интерпретатора python с установленным pandas. Обычно в Ubuntu у вас есть как минимум два переводчика. Один для python 2 и один для python 3, и вы будете использовать их в оболочке, вызывая либо python pth/to/myScript.py
, либо python3 pth/to/myScript.py
. python
и python3
являются в данном случае просто своего рода метками , которые указывают на правильные исполняемые файлы, используя переменную окружения PATH
.
Устанавливая anaconda3, вы добавляете еще одну интерпретатор с pandas и множеством других предустановленных пакетов. Если вы хотите использовать его, вам нужно как-то рассказать об этом вашей оболочке или Дженкинсу. Если import pandas
выдает ошибку, то вы, вероятно, используете другой интерпретатор или другую среду python (но это выходит за рамки данной области).
Возвращаясь к вашему сценарию
После этого ответа о переполнении стека вы увидите, что вся строка #!/usr/bin/env python
делает, чтобы убедитесь, что вы используете первый интерпретатор python в пути к среде вашего Ubuntu. Который почти наверняка не тот, который вы установили с anaconda3. Скорее всего, это будет по умолчанию python 2, распространяемый с Ubuntu. Если вы хотите убедиться, какой именно интерпретатор выполняет ваш скрипт, вместо слова «Hello World» вставьте внутрь:
#!/usr/bin/env python
import sys
print(sys.executable) # this line will give you the exact path to the interpreter
print(sys.version) # this one will give you the version
Хорошо, что делать?
Хорошо, запустите ваш скрипт, используя правильный интерпретатор. Удалите #!/usr/bin/env python
из вашего файла и, если у вас есть конвейер, добавьте туда:
sh "/home/yourname/anaconda3/bin/python /path_to_python_file/myFile.py"
Это, скорее всего, решит проблему. Он также достаточно гибкий в том смысле, что если вы когда-нибудь захотите использовать этот файл python на другом компьютере, ваше имя пользователя не будет жестко задано внутри.