为什么我的virtualenv python3可以在本地机器上正常工作,但在我将virtualenv上传到服务器时却不行?
若我在本地机器上安装了virtualenv,激活它并尝试运行python3,那个么它可以正常工作(使用导入的模块)。但是,在我将其发送到live server(使用scp和filezilla)后,会出现以下错误:为什么我的virtualenv python3可以在本地机器上正常工作,但在我将virtualenv上传到服务器时却不行?,python,python-3.x,virtualenv,Python,Python 3.x,Virtualenv,若我在本地机器上安装了virtualenv,激活它并尝试运行python3,那个么它可以正常工作(使用导入的模块)。但是,在我将其发送到live server(使用scp和filezilla)后,会出现以下错误: -bash: /<path>/venv4/bin/python3: cannot execute binary file: Exec format error 如果我尝试使用完整路径直接执行venv的python3,它也不会起作用 我这样做的原因是因为我使用的旧virtu
-bash: /<path>/venv4/bin/python3: cannot execute binary file: Exec format error
如果我尝试使用完整路径直接执行venv的python3,它也不会起作用
我这样做的原因是因为我使用的旧virtualenv已经停止工作,因为它似乎再也找不到已安装的模块了。我不知道为什么
任何帮助都将不胜感激。我相信有些pip包包含的不仅仅是python代码,而且必须编译。如果主机操作系统与服务器操作系统不同,或者安装了不同的库,则主机编译的代码将与服务器不兼容 通常的做法是创建一个包含所需包列表的文件,使用
pip freeze > requirements.txt
pip install -r requirements.txt
并在服务器上重建环境,使用类似
pip freeze > requirements.txt
pip install -r requirements.txt
只有当服务器和桌面是具有相同库版本的同一操作系统时,此功能才起作用<代码>Exec格式错误表示它是为不同的操作系统或体系结构编译的。两者都是64位。。。还有什么我应该检查的吗?它们都是64位的同一操作系统,有相同版本的python、glibc等吗?那么它的操作系统和体系结构就不一样了。一般来说,不要试图复制VirtualNVs。在开发中使用它们来隔离您的环境,并在
requirements.txt
(用于pip
)、Pipfile
和Pipfile.lock
(用于pipenv
)或pyproject.toml
和poetry.lock
(用于poetry
)。使用这些文件在生产环境中构建类似的环境。感谢您的回答,问题是我也无法从virtualenv执行pip。我不能直接在服务器上安装venv,因为托管提供商不允许。编辑:将从pipfile中尝试python呢?您的服务器是否安装了正确版本的python?是的,它安装了Python3,看起来您有两个选项:1。手动将pip/virtualenv安装到不同的位置,而不是不允许安装它们并用作python模块的位置,python-m pip Install…
,python-m virtualenv venv
。您可能还需要在命令中指定安装它们的位置,我只是不确定这些标志是什么。2.设置一个与服务器具有相同操作系统和库的虚拟机,在其中构建venv,并将其部署到服务器。