如何从不同目录导入两个文件?
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。
#! 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
文件可以通过 "namespace" 编辑路径,因此这并不理想。但是您只能使用包本身。没有它,您将使用该目录中可用的包。
尝试运行这个文件:
#!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。
#! 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
文件可以通过 "namespace" 编辑路径,因此这并不理想。但是您只能使用包本身。没有它,您将使用该目录中可用的包。