Python> как выполнить мой скрипт в venv (созданном в окне) на linux (vm)?

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

Я создал venv на Pycharm (Windows 10, установлен python 2.7). И мое рабочее пространство находится на виртуальной машине (по умолчанию Linux Centos6.1, python 2.6) Я получаю доступ к своей виртуальной машине через интерфейс Samba.

Когда я создал venv и выполнил свой скрипт, я увидел, что консоль сказала, что она исключила python.exe (версия 2.7) на моем venv. Итак, я подумал, что если бы я перешел на весь каталог venv в свой vm linux, Я мог запускать свои скрипты с помощью python2.7.

Но когда я попробовал это на другой виртуальной машине CentOS 5.11, результат был

$> source myvenv/Scripts/activate
[venv]$> ./myscript 
./hello.py: line 1: import: command not found
./hello.py: line 2: import: command not found
./hello.py: line 3: import: command not found
: command not found 
: command not found 
./hello.py: line 6: syntax error near unexpected token `'imported all successfully.''
./hello.py: line 6: `print('imported all successfully.')'

Итак, я понял, что он все еще использует python2.4 (по умолчанию centos5.11). Затем я погуглил и попробовал несколько решений, одним из которых было изменение моей переменной VIRTUAL_ENV, поскольку она была создана в Windows10.

vi myvenv/Script/activate
VIRTUAL_ENV="$(if [ "$OSTYPE" "==" "cygwin" ]; then cygpath -u 
'${myWindowsVenvPath}'; else echo 
'${myLinuxVenvPath}'; fi;)"
export VIRTUAL_ENV

но все равно не работает .. (В моем скрипте тоже пробовал shebang #! / Myvenv / Scripts / python)

Наверное, я плохо понимаю концепцию vevn. Я пробовала надеть? Если есть какие-либо предложения по ее решению или я ошибся, сообщите мне.

Заранее благодарю за ваше мнение.

редакция> мой сценарий предназначен только для проверки возможности импорта сторонних модулей. (прежде, чем я перейду к своему сценарию в Венв) вот как это показано ниже,

import pandas
print('it's working') --> to check if python2.7 is running since it has the different syntax for print function.

Вы можете показать нам, что внутри этого myscript, который вы используете?

yorodm 31.10.2018 13:35

@yorodm Обновил в своей статье!

Inye Yu 01.11.2018 03:28
0
2
352
1

Ответы 1

Я сам выяснил причину. До сих пор у меня был двоичный файл: python.exe подчинен операционной системе. Итак, я снова сделал venv на linux, тогда он, похоже, работает с версией diffrecnt linux, что означает, что верхняя версия python может быть запущена в venv (prerequsite: ей также нужен libpython2.6.so) по-прежнему остается много проблем с разделяемыми библиотеками ... так что вывод состоит в том, что я подошел совершенно неправильно.

Другие вопросы по теме