Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的virtualenv python3可以在本地机器上正常工作,但在我将virtualenv上传到服务器时却不行?_Python_Python 3.x_Virtualenv - Fatal编程技术网

为什么我的virtualenv python3可以在本地机器上正常工作,但在我将virtualenv上传到服务器时却不行?

为什么我的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

若我在本地机器上安装了virtualenv,激活它并尝试运行python3,那个么它可以正常工作(使用导入的模块)。但是,在我将其发送到live server(使用scp和filezilla)后,会出现以下错误:

-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,并将其部署到服务器。