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

时间:2019-07-25 11:16:15

标签: python python-import

尝试运行此文件:

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

返回:

ImportError: No module named psycopg2

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

3 个答案:

答案 0 :(得分:1)

您正在可能两个不同的python安装正在运行。

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

要在您的“主要” python安装中修复此安装烧瓶模块,或者在您的烧瓶环境中安装psycopg2。

答案 1 :(得分:1)

#! 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文件可以通过“命名空间”编辑路径,因此并不理想。但是您只能使用包本身。没有它,您将使用该目录中可用的软件包。

答案 2 :(得分:0)

您需要安装软件包模块。 在终端中执行:

pip install psycopg2

PyPi - PSYCOPG2

中的更多信息