Python virtualenv激活正在工作,但解释器不工作';T

Python virtualenv激活正在工作,但解释器不工作';T,python,virtualenv,Python,Virtualenv,我刚刚为我的项目设置了一个新环境,并上传了一个python存储库,包括bin、lib和项目文件夹。我很确定我以前也做过同样的事情,而且没有问题。现在,在AWS环境中执行相同操作时,我得到了错误 -bash:/projects/scrapy/bin/python2.7:无法执行二进制文件。但是,在执行source/projects/scrapy/bin/activate时,它成功地激活了环境 据我所知,python应该能够在没有任何问题的情况下执行,无论环境如何 任何帮助或指向正确方向都将不胜感激

我刚刚为我的项目设置了一个新环境,并上传了一个python存储库,包括
bin
lib
和项目文件夹。我很确定我以前也做过同样的事情,而且没有问题。现在,在AWS环境中执行相同操作时,我得到了错误
-bash:/projects/scrapy/bin/python2.7:无法执行二进制文件
。但是,在执行
source/projects/scrapy/bin/activate
时,它成功地激活了环境

据我所知,python应该能够在没有任何问题的情况下执行,无论环境如何

任何帮助或指向正确方向都将不胜感激

python应该能够在没有任何问题的情况下执行,无论环境如何

不,Python二进制文件与您特定的操作系统和计算机体系结构相关联。Python源代码通常可以在不同的机器上运行(前提是您没有使用特定于操作系统的功能),但这只能通过首先为特定的目标环境编译Python解释器来实现

换句话说,编译为在macOS上运行的Python二进制文件在Linux上不起作用

source bin/activate
实现的全部功能是将终端设置配置为使用
bin
目录作为
路径
搜索路径上的第一个目录。这并不能使
bin/python
在另一个环境中工作,它只是意味着两个环境都有一个可以运行该脚本的shell解释器

使用为Linux编译的Python二进制文件创建一个新的virtualenv,并在那里安装相同的软件包。使用或将依赖项从Mac传输到Linux

例如,使用Pipenv,您可以将
Pipfile
Pipfile.lock
文件复制到另一台计算机上,然后在那里的目录中运行
Pipenv install
,并从这些文件重新创建virtualenv和依赖项

我建议您阅读本课程中的Python开发最佳实践;这包括有关如何管理项目环境的主题

python应该能够在没有任何问题的情况下执行,无论环境如何

不,Python二进制文件与您特定的操作系统和计算机体系结构相关联。Python源代码通常可以在不同的机器上运行(前提是您没有使用特定于操作系统的功能),但这只能通过首先为特定的目标环境编译Python解释器来实现

换句话说,编译为在macOS上运行的Python二进制文件在Linux上不起作用

source bin/activate
实现的全部功能是将终端设置配置为使用
bin
目录作为
路径
搜索路径上的第一个目录。这并不能使
bin/python
在另一个环境中工作,它只是意味着两个环境都有一个可以运行该脚本的shell解释器

使用为Linux编译的Python二进制文件创建一个新的virtualenv,并在那里安装相同的软件包。使用或将依赖项从Mac传输到Linux

例如,使用Pipenv,您可以将
Pipfile
Pipfile.lock
文件复制到另一台计算机上,然后在那里的目录中运行
Pipenv install
,并从这些文件重新创建virtualenv和依赖项


我建议您阅读本课程中的Python开发最佳实践;这包括有关如何管理项目环境的主题。

我在本地使用Mac。在将文件夹上载到AWS虚拟机之前,一切都一直工作正常。python不是在一个独立的环境中工作吗?python应该能够在没有任何问题的情况下执行,无论环境如何?不,Python二进制文件与您特定的操作系统和计算机体系结构有关。编译为在Macos上运行的Python二进制文件在Linux上不起作用。使用为Linux编译的Python二进制文件创建一个新的virtualenv,并在那里安装相同的软件包。使用
pipenv
或requirements.txt文件将依赖项从Mac传输到Linux。@MartijnPieters所以实际上成功激活并不意味着它可以工作,对吗?不,这意味着您将
activate
shell脚本复制到另一个环境,该环境也有一个支持设置
PATH
环境变量的工作shell解释器。我在本地使用Mac。在将文件夹上载到AWS虚拟机之前,一切都一直工作正常。python不是在一个独立的环境中工作吗?python应该能够在没有任何问题的情况下执行,无论环境如何?不,Python二进制文件与您特定的操作系统和计算机体系结构有关。编译为在Macos上运行的Python二进制文件在Linux上不起作用。使用为Linux编译的Python二进制文件创建一个新的virtualenv,并在那里安装相同的软件包。使用
pipenv
或requirements.txt文件将依赖项从Mac传输到Linux。@MartijnPieters所以实际上成功激活并不意味着它可以工作,对吗?不,这意味着您将
activate
shell脚本复制到另一个环境中,该环境也具有支持设置
PATH
环境变量的工作shell解释器。