无法将 yahoo finance 导入 python

Trouble importing yahoo finance to python

我已经使用 pip 从 PyPI 安装了 yahoo finance,当我转到 运行 以下脚本时出现导入错误:没有名为 yahoo_finance

的模块
from yahoo_finance import Share

BlackDiamond = Share('BDE')
print(BlackDiamond.get_open)

确保 pip 安装到 Python 的包含路径中的某处。 运行 这个命令:

$ pip show yahoo-finance
---
Metadata-Version: 1.1
Name: yahoo-finance
Version: 1.2.1
Summary: Python module to get stock data from Yahoo! Finance
Home-page: https://github.com/lukaszbanasiak/yahoo-finance
Author: Lukasz Banasiak
Author-email: lukasz@banasiak.me
License: MIT
Location: /usr/local/lib/python2.7/site-packages
Requires: pytz, simplejson
Entry-points:
  [console_scripts]
  yahoo-finance = yahoo_finance:main

看到上面写着 Location: /usr/local/lib/python2.7/site-packages 的地方了吗?确保你的是系统站点包目录。通常(例如,在 Mac 或 Ubuntu 上)您需要 sudo pip install 才能将它们放入系统站点包中。如果您打算将其作为用户安装到主目录中的某个位置,则需要确保该目录在您的 python-path.

要查看您当前的路径设置,请在您的主目录中创建一个名为 path.py 的文件并包含以下内容:

import os
import sys

try:
    user_paths = os.environ['PYTHONPATH'].split(os.pathsep)
except KeyError:
    user_paths = []

print "PYTHONPATH: ", user_paths
print "sys.path: ", sys.path

运行 python path.py 你应该会看到类似这样的输出:

$ python path.py
PYTHONPATH:  ['/usr/local/lib/python2.7/site-packages', '']
sys.path:  ['/Users/me/dir', '/usr/local/Cellar/python/2.7.9/..../lib/python2.7/lib-dynload', '/Library/Python/2.7/site-packages', '/usr/local/lib/python2.7/site-packages']

现在,确保安装 yahoo_finance 的路径在您的路径配置中。如果不是,您可以通过 .bashrc and/or .bash_profile:

修改 $PYTHONPATH
export PYTHONPATH="${PYTHONPATH}:/path/to/your/dir"

例如:

$ export PYTHONPATH="${PYTHONPATH}:/path/to/your/dir"
$ python path.py
PYTHONPATH:  ['/usr/local/lib/python2.7/site-packages', '', '/path/to/your/dir']

然后,您应该可以包含您的模块。不过,再次重申:如果您要安装系统范围的站点包,您可能只想使用 sudo pip.

作为 Windows 用户,我不太理解 Will 的回答。 Fortunetaly 我直接从我的 IDE (Spyder 5) 遇到了一个 PYTHONPATH 管理器,并添加了安装模块的路径。

虽然问题解决了,但我还是想不通。安装过程与我使用过的所有其他软件包相同,但在这种情况下无法识别路径,这是我安装的其余模块的公共目录。