小编Flo*_*aun的帖子

PYTHONPATH不包含在Ubuntu 16.04上的sys.path中

经过几个小时的挣扎,我才结束了.

我想将我的项目中的Python模块包含到PYTHONPATH中,以便Python解释器可以解析它们并使它们可用import.

我的项目文件夹如下所示:

my_project/
  module1/
    __init__.py
    module1.py
  module2/
    __init__.py
    module2.py
Run Code Online (Sandbox Code Playgroud)

我已经/etc/bash.bashrc像这样导出了PYTHONPATH :

PYTHONPATH="${PYTHONPATH}:/home/john/my_project/"
Run Code Online (Sandbox Code Playgroud)

重新启动我的shell后,我可以回复它:

$ echo $PYTHONPATH
:/home/john/my_project/
Run Code Online (Sandbox Code Playgroud)

然后我启动一个Python命令行,看看sys.path变成了什么:

$ source /home/john/my_env/bin/activate
(my_env)$ python3
>>> import os
>>> sys.path
['', '/home/john/my_env/lib/python35.zip', '/home/john/my_env/lib/python3.5', '/home/john/my_env/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/site-packages']
Run Code Online (Sandbox Code Playgroud)

正如你可以清楚地看到的那样,/home/john/my_project/没有包括在内并且import module1会失败.

我能想到的最后一件事是Python无法看到我的PYTHONPATH变量,因此没有添加它的内容sys.path.

你们发现我的错误吗?

提前致谢.

python linux bash

6
推荐指数
1
解决办法
3917
查看次数

将HTML传递到Jinja宏

我的页面上有许多Bootstrap模态,除了标识符和实际内容外,它们总是具有相同的标记。

为了最大程度地减少这些模式的大量重复代码,我想构建一个Jinja宏,通过一个简单的调用即可吐出模式的整个HTML标记,例如:

{# macros/modal_template.jinja2 #}

{% macro print_modal(id, title, body_content) %}
  <div class="modal fade" id="{{ id }}" tabindex="-1">
    <div class="modal-dialog">
       <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal"><span>&times;</span></button>
          <h4 class="modal-title">{{ title }}</h4>
        </div>
        <div class="modal-body">
          {{ body_content }}
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          <button type="button" class="btn btn-primary">Save changes</button>
        </div>
      </div>
    </div>
  </div>
{% endmacro %}


{# my_page.jinja2 #}

{% from "macros/modal_template.jinja2" import print_modal %}
<html>
<body>
  {{ print_modal("description-modal", "Description", "Lorem Ipsum") }}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

到目前为止,这几乎是很容易的,但是图像 body_content不是纯字符串,而是复杂的HTML表单或带有文本样式HTML的超长文本。我正在努力找到解决这个问题的好方法。 …

html jinja2

3
推荐指数
1
解决办法
513
查看次数

SLS 中的 ID 不是字典

我正在尝试使用 SaltStack 配置我的 Vagrant 驱动的 VM。我想安装和配置 PostgreSQL。这是我的状态:

postgresql-installation:
    # adding repo, installing package, starting service here

postgresql-database-setup:
    - postgres_user.present:
        - name: {{ pillar['pg_db_user'] }}
        - password: {{ pillar['pg_db_password'] }}
        - require:
            - service: postgresql
    - postgres_database.present:
        - name: {{ pillar['pg_db_name'] }}
        - encoding: {{ pillar['pg_db_encoding'] }}
        - lc_ctype: {{ pillar['pg_db_ctype'] }}
        - lc_collate: {{ pillar['pg_db_collate'] }}
        - template: {{ pillar['pg_db_template'] }}
        - owner: {{ pillar['pg_db_user'] }}
        - require:
            - postgres_user: postgresql-database-setup
Run Code Online (Sandbox Code Playgroud)

postgres-installation工作完美,但postgres-database-setup让我头疼。运行配置时,Salt 会抛出此错误:

Data failed to compile: …
Run Code Online (Sandbox Code Playgroud)

postgresql provisioning salt-stack

1
推荐指数
1
解决办法
1916
查看次数

标签 统计

bash ×1

html ×1

jinja2 ×1

linux ×1

postgresql ×1

provisioning ×1

python ×1

salt-stack ×1