【问题标题】:How to setup PyCharm to use virtualenv in Vagrant/VirtualBox remote interpreter configuration?如何设置 PyCharm 在 Vagrant/VirtualBox 远程解释器配置中使用 virtualenv?
【发布时间】: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 项目的文档吗?

【问题讨论】:

    标签: ubuntu vagrant virtualbox virtualhost pycharm


    【解决方案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 插件来自动编辑你的主机和来宾机器的主机文件。因此,您可以直接访问您的域,而无需一直手动编辑主机文件。

    【讨论】:

    • 除非我弄错了,这说明了要做什么,而不是怎么做?根据问题,我正在寻找有关如何让 PyC​​harm 在 Vagrant 中使用 virtualenv 的说明...
    • 您可以与来宾共享虚拟主机文件夹,然后从那里开始?我的回答主要与文中最后提出的问题有关,可能与标题中的问题无关。
    猜你喜欢
    • 2019-01-16
    • 1970-01-01
    • 2013-09-07
    • 2015-02-12
    • 2019-09-29
    • 1970-01-01
    • 2018-05-26
    • 2013-10-10
    • 2016-10-16
    相关资源
    最近更新 更多