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

Python virtualenv问题

邢璞
2023-03-14
问题内容

我在Windows XP上使用VirtualEnv。我想知道我的大脑是否被正确包裹:

我跑了virtualenv ENV,它创造了C:\WINDOWS\system32\ENV。然后,我将PATH变量更改为include
C:\WINDOWS\system32\ENV\Scripts而不是C:\Python27\Scripts。然后,我将Django检出到C:\WINDOWS\system32\ENV\Lib\site- packages\django- trunk,更新了PYTHON_PATH变量以指向新的Django目录,然后继续执行easy_install其他操作(这些当然进入了我的新C:\WINDOWS\system32\ENV\Lib\site- packages目录)。

我了解为什么我应该使用VirtualEnv,以便可以在同一台计算机上运行Django的多个版本以及其他库,但这是否意味着要在环境之间进行切换,我必须基本上更改自己的变量PATHPYTHON_PATH变量?因此,我从开发一个在Django环境中使用Django
1.2的Django项目开始,ENV然后更改my PATH和诸如此类,以便我可以使用一个ENV2具有Django开发版本的环境。

基本上是这样,还是有更好的方法来自动完成所有这些操作(我可以在Python代码中更新路径,但这需要我在应用程序中编写机器特定的代码)?

此外,与在Linux上使用VirtualEnv相比,此过程的效果如何(我是Linux的初学者)。


问题答案:

通常virtualenv在当前目录中创建环境。除非C:\Windows\system32出于某种原因打算创建虚拟环境,否则我将对环境使用其他目录。

您无需弄乱路径:使用activate脚本(中的<env>\Scripts)来确保Python可执行文件和路径是特定于环境的。完成此操作后,命令提示符将更改以指示环境。然后,您可以仅调用easy_install,并将通过这种方式安装的任何内容安装到此环境中。使用deactivate到一套一切回到它是怎么激活之前。

例:

c:\Temp>virtualenv myenv
New python executable in myenv\Scripts\python.exe
Installing setuptools..................done.
c:\Temp>myenv\Scripts\activate
(myenv) C:\Temp>deactivate
C:\Temp>

请注意,我不需要为它指定路径deactivate- activate为您这样做,以便在激活“
Python”时将在virtualenv中运行Python,而不是系统Python。(尝试一下-做一个import sys; sys.prefix,它应该显示您环境的根。)

您只需激活一个新环境即可在环境/项目之间切换,但是您需要指定整个路径,activate以便它知道要激活哪个环境。您永远不需要显式地混淆PATH或PYTHONPATH。

如果使用Windows
Powershell,则可以利用包装器。在Linux上,virtualenvwrapper(链接指向Powershell的端口)使生活virtualenv变得更加轻松。

更新:
确实不正确,但可能并不完全符合virtualenv。您可以采取不同的方法:例如,如果在virtualenv中安装了Django以及网站所需的其他任何东西,则可以在激活virtualenv的情况下在项目目录(正在开发网站的地方)工作。因为它已被激活,所以您的Python会找到Django以及您可以轻松安装到虚拟环境中的任何其他内容:并且由于您在项目目录中工作,因此项目文件也将对Python可见。

进一步更新: 你应该能够使用pipdistribute而不是setuptools,只是简单的python setup.py installvirtualenv。只需确保已激活环境,然后再向其中安装内容即可。



 类似资料:
  • 问题内容: 包括: all Spring libs, Apache Tomcat 7.0 library 在构建路径中 但它仍然给出错误: 在“ org.sprintframework.web-3.1.0.M1.jar”中,我可以看到“ org.springframework.web.context.ContextLoaderListener”。 Google上的某个人说应该包含spring.ja

  • 问题内容: 我使用非常简单的代码返回XML 但是,出现以下错误 请帮忙。谢谢 问题答案: 运行时出现NoSuchMethodError表示你使用的库版本与生成代码所针对的版本不同。 在你的情况下,Spring是元凶。在运行时检查类路径上的内容,并确保以下各项: 版本与编译时间罐相同 如果存在多个版本,请删除不需要的版本

  • 问题内容: 我不明白注释和之间的实际区别是什么? 扩展名还是它们具有完全不同的含义?什么时候应该使用它们?在服务层中使用Spring ,在DAO 中使用javax? 谢谢回答。 问题答案: 几年前,Spring定义了自己的Transactional注释以使Spring bean方法具有事务性。 Java EE 7终于做了同样的事情,现在除了EJB方法外,还允许CDI bean方法是事务性的。因此,

  • 我在CentOS虚拟机中安装了RabbitMQ,该虚拟机的网络适配器被定义为Bridge。我正在尝试配置RabbitMQ管理,以便通过机器的IP地址访问WebApp。配置如下:

  • 这个FAQ的最新版本总是可以从Apache主站点得到,位于<http://httpd.apache.org/docs/2.2/faq/> 如果你的问题在这里没有找到答案,你也可以看看Apache 1.3 FAQ ,看你的问题是否在那里有了答案。 主题 背景 关于 Apache HTTP Server 的背景知识。 支持 我遇到问题该怎么办? 错误信息 这些错误信息是什么意思? 背景 什么是Apac

  • 发布问题 更新问题 设置问题悬赏 获取问题列表 获取一个问题详情 删除一个问题 获取用户发布的问题列表 发布问题 POST /questions 输入 字段 类型 描述 subject 字符串 必须,问题主题或者说标题,不能超过 255 字节 ,必须以 ? 结尾。(不区分全角或者半角) topics 数组 必须,绑定的话题,数组子节点必须符合 { "id": 1 } 的格式。 body 字符串

  • 问题内容: 我简直不敢相信我网站上正在发生的事情。当我添加此行时: 一切正常。如果我不这样做,CSS就会“混乱”,一切都会变得不同,布局也会变得“丑陋”。 这条线如何解决所有问题? 问题答案: 您正在将HTML与XHTML混合使用。 通常,声明用于区分HTMLish语言的版本(在这种情况下为HTML或XHTML)。 不同的标记语言将表现不同。我最喜欢的例子是。在浏览器中查看以下内容: XHTML

  • 我试图在fabric rocket chat上联系,但没有得到太多帮助,因此在SO上发布了它。我有以下疑问: 我们是否可以在链码内访问块高度(我知道这在客户端是可行的,但在链码内是否可能) 可以从链码中的正在进行的事务调用新事务吗? 想知道hyperledger Fabric中存储的数据的历史记录在哪里 我们可以根据链码中的transactionid进行查询吗? 在fabric链码中编写调度程序是