如何从不同目录导入两个文件?

How to import two files from different directories?

尝试运行这个文件:

#!flask/bin/python
from flask import Flask, jsonify
#!/usr/bin/python
import psycopg2

还有这个return:

ImportError: No module named psycopg2

我有只有 psycopg2 的文件,它可以工作。我还有另一个只有烧瓶的文件,它也可以工作。但是当我尝试 运行 文件同时导入时它会崩溃。 如何修复它(包括 flask/bin/python 和 /usr/bin/python,flask 和 psycopg2 一起工作)?

您需要安装一个包模块。 在终端执行:

pip install psycopg2

更多信息见PyPi - PSYCOPG2

可能 有两个不同的python 安装运行。

一个在 [some path]/flask/bin/python 一个在 /usr/bin/python。这些模块安装在不同的环境中,因此不能一起使用。

要在您的 'main' python 安装中修复此安装 flask 模块或在您的 flask 环境中安装 psycopg2。

#! PATHshebang 和 Unix/Linux 将其用于执行程序的路径。 (/path/to/script.py 代替 python /path/to/script.py)

但是,它可能有助于扩展查找包的路径。

运行 用于您的额外环境(python bin)这个:

# Example:
python -c "import PACKAGE; print(PACKAGE.__path__)"
# Psycopg2
python -c "import psycopg2; print(psycopg2.__path__)"

输出:

['/path/to/some/python/psycopg2']

(我的输出:/home/usr/miniconda3/envs/free/lib/python3.6/site-packages/psycopg2

#!flask/bin/python
from flask import Flask, jsonify

import sys
sys.path.insert(0, '/path/to/some/python')  # Without package name
import psycopg2

如果添加带有包名称的路径,则必须向下一级,但请注意,__init__.py 文件可以通过 "namespace" 编辑路径,因此这并不理想。但是您只能使用包本身。没有它,您将使用该目录中可用的包。