如何设置 PyCharm 在 Vagrant/VirtualBox 远程解释器配置中使用 virtualenv?
Posted
技术标签:
【中文标题】如何设置 PyCharm 在 Vagrant/VirtualBox 远程解释器配置中使用 virtualenv?【英文标题】:How to setup PyCharm to use virtualenv in Vagrant/VirtualBox remote interpreter configuration? 【发布时间】:2015-01-03 16:37:42 【问题描述】:在 Windows 下运行的 PyCharm。
在 VirtualBox 下托管的 Ubuntu 14.04 LTS VM。
设置 PyCharm 以使用 Vagrant 启动所述 VM 并使用远程 Python 解释器按宣传工作。但是,这也恰好是 Ubuntu 使用的解释器和软件包。
如何修改此设置以在 VM 上使用一个或多个虚拟环境?这个想法是每个项目很可能有完全不同的需求,它们应该通过 virtualenv 相互隔离并与系统隔离。
这是否需要使用 Apache VirtualHost 来设置单独的项目?有任何关于 Python 和/或 Python/Django 项目的文档吗?
【问题讨论】:
【参考方案1】:我发现接受的答案很有帮助,但与@miR 的评论一致...
要将 PyCharm 设置为使用虚拟环境,您可以编辑/设置 Python 解释器路径到 virtualenv 的二进制文件。
例如。我的 virtualenv(通过 ssh 在 Ubuntu Vagrant VM 中创建)是 /home/vagrant/virtualenvs/project/bin/python3
,所以我只是将该路径复制到“项目解释器”中的“Python 解释器路径”字段中。
效果很好。我什至可以使用 PyCharm 接口将包安装到 Vagrant VM 上的 virtualenv 中。
【讨论】:
好提示!我正在使用在虚拟环境中运行的 Vagrant 中的 Django 应用程序来执行此操作,而我需要使用 PyCharm 的 Django 运行器的唯一其他步骤是取消选择“将内容根添加到 PYTHONPATH”和“将源根添加到 PYTHONPATH”,然后将“工作目录”中的删除工作目录路径。可能不是最好的组合,但它现在可以工作了。【参考方案2】:我们正在使用 vagrant,并且我们有 100 多个具有不同虚拟环境的站点。我在 /vagrant/projects 文件夹中设置项目,该文件夹是主机和来宾之间的共享文件夹。通过这种方式,我们可以根据开发人员的偏好从 vagrant 客户机或主机中的 ide 处理项目。
每个项目都有自己的 apache virtualhost conf,虚拟环境位于 /usr/local/virtualenvs/。例如:
/vagrant/projects/site1 与虚拟环境 /usr/local/virtualenvs/site1 等等。
一个站点的 apache conf 如下所示:
<VirtualHost *:80>
ServerAdmin your@email.com
ServerName site1
ErrorLog /var/log/apache2/error_site1.log
CustomLog /var/log/apache2/access_site1.log common
WSGIDaemonProcess site1 user=www-data group=www-data umask=0002 threads=3 python-path=/vagrant/projects/site1/web/site1:/usr/local/virtualenvs/site1/lib/python2.7/site-packages/
WSGIProcessGroup site1
WSGIScriptAlias / /vagrant/projects/site1/web/server.wsgi
<Directory />
Options Indexes FollowSymLinks none ExecCGI
AllowOverride None
Order allow,deny
Allow from all
ServerSignature Off
</Directory>
</VirtualHost>
你也可以使用 vagrant-hostmanager 插件来自动编辑你的主机和来宾机器的主机文件。因此,您可以直接访问您的域,而无需一直手动编辑主机文件。
【讨论】:
除非我弄错了,这说明了要做什么,而不是怎么做?根据问题,我正在寻找有关如何让 PyCharm 在 Vagrant 中使用 virtualenv 的说明... 您可以与来宾共享虚拟主机文件夹,然后从那里开始?我的回答主要与文中最后提出的问题有关,可能与标题中的问题无关。以上是关于如何设置 PyCharm 在 Vagrant/VirtualBox 远程解释器配置中使用 virtualenv?的主要内容,如果未能解决你的问题,请参考以下文章