请帮助我。我已经花了很多次了,但还是不知道为什么。 首先,我想让您知道我对编程真的很陌生,对基础知识也不是很了解。 也为我的英语感到抱歉,这可能会使所有人困惑。
我已经在Pycharm上创建了venv(已安装Windows 10,python 2.7)。 我的工作区位于VM(默认情况下为Linux Centos6.1,python 2.6) 我通过Samba界面访问我的虚拟机。
当我创建venv并执行脚本时,我看到控制台说它在我的venv上超越了python.exe(2.7版本)。 所以我想,如果我将整个venv目录移到我的vm linux上, 我可以通过python2.7运行脚本。
但是当我在另一个VM 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概念。 我试过了吗?如果有任何解决建议,或者我认为有错误,请告诉我。
预先感谢您的意见。
修订> 我的脚本仅用于检查是否可以导入第三方模块。 (在将整个脚本移到venv之前) 就像下面这样
import pandas
print('it's working') --> to check if python2.7 is running since it has the different syntax for print function.
答案 0 :(得分:0)
我自己找出了原因。 到目前为止,我得到的是二进制文件:python.exe从属于操作系统。 所以我再次在linux上制作了venv,然后似乎可以在diffrecnt版本的linux上使用,这意味着python的较高版本可以在venv中使用(适当的:它也需要libpython2.6.so) 仍然存在很多共享库问题...因此得出的结论是,我的做法完全错误。