当前位置: 首页 > 面试题库 >

如何在Windows和Linux上使用相同的Python virtualenv

庄星汉
2023-03-14
问题内容

我最近开始在同一台PC上使用Windows和Linux-
它们安装在两个不同的分区中,第三个分区包含公用数据和存档。从Windows创建的virtualenvs使用文件夹“
Scripts”创建,而Linux中的对应文件是文件夹“ bin”。

这里的问题是这些文件夹中的文件不适用于两个操作系统。例如,bin(在Linux中创建)中包含的“激活”不在Windows中运行,另一方面,在Windows(在Windows中创建)中的脚本中的“
activate”不能在Linux上执行。

有没有办法在两个OS上使用相同的virtualenv?


问题答案:

简短的答案,不。但是您可以共享venv构建脚本。

  1. pip freeze所有库都保存到一个requirements.txt文件中。

    pip freeze > requirements.txt
    
  2. 在每个操作系统上创建venv:

    python -m venv env
    

    source env/bin/activate
    pip install -r requirements.txt # Install all the libs.

无法在操作系统之间共享venv的原因有很多:

  1. 某些软件包包含C扩展名,并且OS的.dll不相互兼容。
  2. venvs包含具有硬编码路径的脚本。Windows和Linux路径不同。


 类似资料:
  • 我们有一个内部开发的基于客户机/服务器的应用程序。客户端和服务器通过TCP/IP连接与特定于应用程序的协议进行通信。客户端在Windows上运行,服务器在Linux上运行。所有计算机都位于相同的Active Directory/Kerberos域/领域中。 目前,用户在启动应用程序时输入用户名和密码。服务器检查用户名和密码(身份验证)。服务器还根据用户名确定对资源的访问(授权)。 我们希望向应用程

  • 我正在使用Selenium从我注册的网站上获取一些数据,现在每次我运行该程序时,它都会打开一个新的chrome浏览器并登录到我的帐户,最后我运行了Captcha,我如何才能使它在我的帐户已经登录的情况下打开相同的浏览器会话? 现在我用的是: 谢谢!

  • 问题内容: 我有一个grails应用程序,它依赖于服务中的同步块。当我在Windows上运行它时,同步可以按预期工作,但是当我在ams linux上运行时,会收到StaleObjectStateException。 在下面的示例中重现该问题。 } 据我了解,发生此异常是因为多个线程正在尝试保存同一对象。这就是为什么我使用同步块。 Linux Java: Java版本“ 1.7.0_85” Open

  • 我曾经能够在NetBeans 8中安装和使用Sass,如关于如何在NetBeans 8.0.1中使用Sass的顶级答案所述 现在,使用当前版本的Sass(1.14.1),安装是不同的。基本上只是下载和解焦油。完成了,我已经将NetBeans指向了正确的位置。但是当前版本的Sass不能从NetBeans中正确运行:

  • 问题内容: 我想知道如何在Windows XP 32位上使用PyPy 1.8。我从网站上下载了zip文件,并将其安装到“我的文档”文件中。最初,我认为它与psyco类似,因为我必须“导入psyco”,但是我发现PyPy.exe的行为类似于Python命令行。 我尝试将脚本拖到PyPy.exe中运行它们,但似乎根本不起作用。尝试在PyPy中使用“ python”命令会产生“未定义全局名称’pytho

  • 问题内容: 我在生成允许分别使用gcc和MinGW在Linux和Windows中构建共享库的构建设置时遇到了麻烦。在Linux中,共享库不必在编译时就解决所有依赖关系。相反,在Windows中似乎是这种情况。这是问题设置: 现在,在Linux中,它可以编译并正常运行: 在Windows中,我们需要更改为dll,这是次要的事情: 但是,当我们尝试构建时,会出现以下错误: 现在,我们可以通过简单地将f