尝试运行此文件:
#!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一起工作)?
答案 0 :(得分:1)
您正在可能两个不同的python安装正在运行。
[some path]/flask/bin/python
中有一个,/usr/bin/python
中有一个。这些模块安装在不同的环境中,因此不能一起使用。
要在您的“主要” python安装中修复此安装烧瓶模块,或者在您的烧瓶环境中安装psycopg2。
答案 1 :(得分:1)
#! PATH
是shebang,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)