使用 VirtualEnv 中的解释器

Using Interpreters from the VirtualEnv

我已经开始尝试使用 Crossbar 和 WAMP(Web 应用程序消息传递协议),我在短短几周内就爱上了这些东西。我也回答了 this stack overflow question (Debugging Crossbar.io app in IntelliJ),但是,我对自己的解决方案有疑问。

...

Step 2: Create a pyenv with Python 2 for crossbar.io

    $ pyenv virtualenv 2.7.6 crossbar
    $ pyenv activate crossbar
    (crossbar)$ pip install crossbar
    
...

Step 5: Create a pyenv with Python 3 for app components

    $ pyenv virtualenv 3.4.2 app
    $ pyenv activate app
    (app)$ pip install autobahn
    

Step 6: Create a normal PyCharm project with "app" as a local python environment. I mean use python executable from app pyenv as an interpreter.

...

在我的解决方案的第 5 步中,我建议为应用程序组件创建一个新的虚拟 python 环境。

第 6 步纯粹是为了 IDE 自动完成并从上面的虚拟环境中找到本地包、库和其他东西。我估计,"crossbar" 命令不知道这个虚拟环境。

所以,当我通过 ~/.pyenv/versions/crossbar/bin/crossbar start 命令运行应用程序时,如何确保使用虚拟环境中的 python 解释器反而?我的意思是来自 ~/.pyenv/versions/app/bin/python3?

是不是和配置文件有关? 我很快查看了文档 (http://crossbar.io/docs/Container-Configuration/),但遗憾的是根本没有找到任何关于 Python 解释器的信息。

我试着把 "executable": "~/.pyenv/versions/app/bin/python3" 放在配置文件中,但显然没有通过验证。我的意思是 crossbar check 命令失败。

谢谢你的进阶。

如果您想将 Python 3 用于您的 应用程序组件 ,并让该组件由 Crossbar.io 启动,这意味着您需要一个 客工.

为来宾工作人员配置可执行文件 运行 的方法(在您的情况下为 Python 3)确实是使用 executable 参数。

文档很少,但是 here

您最安全的选择是在 executable 中使用完全限定的绝对路径,指向您要用于组件的 virtualenv 中的 Python 3 二进制文件。

请注意,以上适用于 客工 。 Crossbar.io native workers 包括路由器和组件容器。后者也能够托管 Python 应用程序组件,但 来自与 Crossbar.io 运行 相同的 Python。文档(抱歉,我知道,稀疏)是 here