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