无法在远程计算机中正确激活 Python
Cannot activate correct Python in remote computer
我已将虚拟环境移动到远程计算机上。我正在尝试激活 python 3.8,但运气不佳。
我使用的虚拟环境是使用 venv 创建的。但是我在 Mac 上创建了它,然后将其移动到目标 Linux 计算机上。下面演示Linux电脑有python3.8
kylefoley@kfoley76:~/byu_corpus_small/venv_byu/bin$ ls
activate activate_this.py pip pip3.8 python3
activate.csh easy_install pip2 python python-config
activate.fish easy_install-2.7 pip2.7 python2 wheel
Activate.ps1 easy_install-3.8 pip3 python2.7
我使用以下命令激活了虚拟环境:
kylefoley@kfoley76:~/byu_corpus_small$ source venv_byu/bin/activate
但是下面的命令显示python2.7被激活
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ python --version
Python 2.7.13
此外,当我 运行 我的一个程序时,我得到了一个只有 python 2.7 会抛出的语法错误:
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ python3 fix_mistakes.py
File "fix_mistakes.py", line 113
p = print
p (f"{round(c - b,0)} seconds")
SyntaxError: invalid syntax
即使我 运行 命令 python3,它也会激活 python 3.5,如下所示:
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
我什至认为计算机甚至没有使用我的工作环境,而是默认的 python 解释器,原因如下:
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ which python
/usr/bin/python
我认为解释器会在我的虚拟环境中:
/venv_byu/bin/python3
#####更新
我能够在 linux 上安装 venv,但我仍在激活 python 3.5.3
kylefoley@kfoley76:~/byu_corpus_small$ source venv_byu/bin/activate
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small$ which python
/home/kylefoley/byu_corpus_small/venv_byu/bin/python
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small$ python --version
Python 3.5.3
貌似我下载的环境没有3.8
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/venv_byu/bin$ ls
activate activate.fish easy_install-3.5 pip3 python
activate.csh easy_install pip pip3.5 python3
现在,我只需要弄清楚如何获得 3.8
虚拟环境不可移植。您应该在目标计算机上创建一个新的虚拟环境,并用您需要的包填充它。在本地计算机上用 pip freeze
列出它们或在 requirements.txt
中手动枚举它们是两种常见的方法。
Python附带的标准虚拟环境实际上硬编码了虚拟环境的路径,所以你甚至不能在本地重命名目录,更不用说将它复制到不同的目录结构上了计算机。
出于各种原因,activate
命令需要 运行 和 source
,但这也意味着它对故障的抵抗力不是很强。例如,它可以抛出错误或静默失败,但仍会更新您的提示,使其看起来好像虚拟环境已成功激活。
要在 Python 3.8 安装为 /usr/local/bin/python3.8
的计算机上创建新的虚拟环境,您可以 运行
/usr/local/bin/python3.8 -m venv venv_byu
然后您需要 activate
这个环境,并且 pip install
或者用您需要的库填充它。
pip freeze
将列出所有已安装软件包的确切版本,因此更精确地获取所有内容的完全相同版本。如果您在 requirements.txt
中手动列出包,则 没有 指定任何内容的精确版本,并且您可以省略作为包的依赖项引入的包你其实特别依赖。
我已将虚拟环境移动到远程计算机上。我正在尝试激活 python 3.8,但运气不佳。
我使用的虚拟环境是使用 venv 创建的。但是我在 Mac 上创建了它,然后将其移动到目标 Linux 计算机上。下面演示Linux电脑有python3.8
kylefoley@kfoley76:~/byu_corpus_small/venv_byu/bin$ ls
activate activate_this.py pip pip3.8 python3
activate.csh easy_install pip2 python python-config
activate.fish easy_install-2.7 pip2.7 python2 wheel
Activate.ps1 easy_install-3.8 pip3 python2.7
我使用以下命令激活了虚拟环境:
kylefoley@kfoley76:~/byu_corpus_small$ source venv_byu/bin/activate
但是下面的命令显示python2.7被激活
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ python --version
Python 2.7.13
此外,当我 运行 我的一个程序时,我得到了一个只有 python 2.7 会抛出的语法错误:
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ python3 fix_mistakes.py
File "fix_mistakes.py", line 113
p = print
p (f"{round(c - b,0)} seconds")
SyntaxError: invalid syntax
即使我 运行 命令 python3,它也会激活 python 3.5,如下所示:
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
我什至认为计算机甚至没有使用我的工作环境,而是默认的 python 解释器,原因如下:
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/code$ which python
/usr/bin/python
我认为解释器会在我的虚拟环境中:
/venv_byu/bin/python3
#####更新
我能够在 linux 上安装 venv,但我仍在激活 python 3.5.3
kylefoley@kfoley76:~/byu_corpus_small$ source venv_byu/bin/activate
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small$ which python
/home/kylefoley/byu_corpus_small/venv_byu/bin/python
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small$ python --version
Python 3.5.3
貌似我下载的环境没有3.8
(venv_byu) kylefoley@kfoley76:~/byu_corpus_small/venv_byu/bin$ ls
activate activate.fish easy_install-3.5 pip3 python
activate.csh easy_install pip pip3.5 python3
现在,我只需要弄清楚如何获得 3.8
虚拟环境不可移植。您应该在目标计算机上创建一个新的虚拟环境,并用您需要的包填充它。在本地计算机上用 pip freeze
列出它们或在 requirements.txt
中手动枚举它们是两种常见的方法。
Python附带的标准虚拟环境实际上硬编码了虚拟环境的路径,所以你甚至不能在本地重命名目录,更不用说将它复制到不同的目录结构上了计算机。
出于各种原因,activate
命令需要 运行 和 source
,但这也意味着它对故障的抵抗力不是很强。例如,它可以抛出错误或静默失败,但仍会更新您的提示,使其看起来好像虚拟环境已成功激活。
要在 Python 3.8 安装为 /usr/local/bin/python3.8
的计算机上创建新的虚拟环境,您可以 运行
/usr/local/bin/python3.8 -m venv venv_byu
然后您需要 activate
这个环境,并且 pip install
或者用您需要的库填充它。
pip freeze
将列出所有已安装软件包的确切版本,因此更精确地获取所有内容的完全相同版本。如果您在 requirements.txt
中手动列出包,则 没有 指定任何内容的精确版本,并且您可以省略作为包的依赖项引入的包你其实特别依赖。