Python virtualenv 激活工作但解释器不工作
Python virtualenv activation working but interpreter doesn't
我刚刚为我的项目设置了一个新环境并上传了一个 python 存储库,其中包括 bin
、lib
和项目文件夹。我很确定我之前也做过同样的事情并且它没有问题。现在,在 AWS 环境中执行相同操作时出现错误
-bash: /projects/scrapy/bin/python2.7: cannot execute binary file
。但是,当执行 source /projects/scrapy/bin/activate
时,它会成功激活环境。
据我了解,无论环境如何,python 都应该能够毫无问题地执行?
任何帮助或指出正确的方向将不胜感激!
python should be able to execute without any issue no matter the environment ?
不,Python 二进制文件与您的特定 OS 和计算机体系结构相关。 Python 源代码 通常可以 运行 在不同的机器上(前提是你没有使用 OS 特定的功能),但这只是可能通过为特定目标环境编译 Python 解释器 first.
换句话说,在 macOS 上编译为 运行 的 Python 二进制文件 不会 在 Linux 上工作。
source bin/activate
的全部功能是将您的终端设置配置为使用 bin
目录作为 PATH
搜索路径上的第一个目录。这不会使 bin/python
在另一个环境中工作,它只是意味着两个环境都有一个工作的 shell 解释器可以 运行 该脚本。
使用为 Linux 编译的 Python 二进制文件创建一个新的 virtualenv,并在那里安装相同的包。使用 Pipenv or a requirements.txt file 将依赖项从 Mac 转移到 Linux.
例如,使用 Pipenv,您可以将 Pipfile
和 Pipfile.lock
文件复制到另一台计算机,然后将 运行 pipenv install
复制到那里的目录中,然后重新- 从这些文件创建 virtualenv 和依赖项。
我建议您阅读 The Hitchhiker’s Guide to Python 中的 Python 开发最佳实践;这包括有关如何管理项目环境的主题。
我刚刚为我的项目设置了一个新环境并上传了一个 python 存储库,其中包括 bin
、lib
和项目文件夹。我很确定我之前也做过同样的事情并且它没有问题。现在,在 AWS 环境中执行相同操作时出现错误
-bash: /projects/scrapy/bin/python2.7: cannot execute binary file
。但是,当执行 source /projects/scrapy/bin/activate
时,它会成功激活环境。
据我了解,无论环境如何,python 都应该能够毫无问题地执行?
任何帮助或指出正确的方向将不胜感激!
python should be able to execute without any issue no matter the environment ?
不,Python 二进制文件与您的特定 OS 和计算机体系结构相关。 Python 源代码 通常可以 运行 在不同的机器上(前提是你没有使用 OS 特定的功能),但这只是可能通过为特定目标环境编译 Python 解释器 first.
换句话说,在 macOS 上编译为 运行 的 Python 二进制文件 不会 在 Linux 上工作。
source bin/activate
的全部功能是将您的终端设置配置为使用 bin
目录作为 PATH
搜索路径上的第一个目录。这不会使 bin/python
在另一个环境中工作,它只是意味着两个环境都有一个工作的 shell 解释器可以 运行 该脚本。
使用为 Linux 编译的 Python 二进制文件创建一个新的 virtualenv,并在那里安装相同的包。使用 Pipenv or a requirements.txt file 将依赖项从 Mac 转移到 Linux.
例如,使用 Pipenv,您可以将 Pipfile
和 Pipfile.lock
文件复制到另一台计算机,然后将 运行 pipenv install
复制到那里的目录中,然后重新- 从这些文件创建 virtualenv 和依赖项。
我建议您阅读 The Hitchhiker’s Guide to Python 中的 Python 开发最佳实践;这包括有关如何管理项目环境的主题。