【问题标题】:Python str errorPython str 错误
【发布时间】:2018-03-21 19:46:08
【问题描述】:

我正在使用以下脚本:python script

# Import IQFeed Historical Data to InfluxDB
# 
# optional arguments:
#   -h, --help            show this help message and exit
#   --ticker TICKER       Ticker to request data for. (default: SPY)
#   --ticker-list TICKER_LIST
#                         Path to folder to create files. (default: None)
#   --dbhost DBHOST       InfluxDB hostname. (default: None)
#   --dbport DBPORT       InfluxDB port number. (default: None)
#   --iqhost IQHOST       IQfeed Connect hostname. (default: None)
#   --iqport IQPORT       IQfeed Connect port number. (default: None)
#   --username USERNAME   InfluxDB username. (default: None)
#   --password PASSWORD   InfluxDB password. (default: None)
#   --database DATABASE   InfluxDB database to use. (default: None)
#   --fromdate FROMDATE   Starting date for historical download with format:
#                         YYYY[-MM-DDTHH:MM:SS]. (default: None)
#   --todate TODATE       Ending date for historical download with format: YYYY
#                         [-MM-DDTHH:MM:SS]. (default: None)
#   --debug               Turn on debug logging level. (default: False)
#   --info                Turn on info logging level. (default: False)

我使用以下输入运行它:

python influx.py --ticker SPY --dbhost 127.0.0.1 --dbport 8088 --iqhost 127.0.0.1 --iqport 9100 --database SPY --fromdate 2017 --todate 2018

并得到一个 str 错误。即使我将日期更改为“20180101”仍然会在第 59 行得到错误。我似乎无法调试它一些快速参考。

错误指向 : 时声明 cmd:str

def _send_cmd(self, cmd: str):

如果我删除了那个声明,那么它只会在第 64 行给我另一个错误,同样的问题是 thhe : is wrong in declaring as a str

def iq_query(self, message: str):

我得到的错误是:

File "influx.py", line 59
  def _send_cmd(self, cmd: str):
                         ^ SyntaxError: invalid syntax

【问题讨论】:

  • 究竟是什么错误? “str 错误”含糊不清。你能包括整个错误吗?也就是说,听起来您正在使用 Python 2 运行它,但它需要 Python 3。
  • python -V = Python 3.4.5 :: Continuum Analytics, Inc.
  • 整个错误:文件“influx.py”,第 59 行 def _send_cmd(self, cmd: str): ^ SyntaxError: invalid syntax
  • ^ 位于 : cmd 之后

标签: python sockets


【解决方案1】:

该脚本需要 Python 3.5 及更高版本,但您使用的是 Python 3.4。请参阅typing 了解更多信息。

您可以升级到最新版本的 Python 或直接从代码中删除 : str: np.array

【讨论】:

  • # (influxDB) :/tmp/backtrader$ sudo python influx.py --ticker SPY --database SPYS --fromdate 2017 --today 2018 # File "influx.py", line 59 # def _send_cmd(self, cmd: str): # ^ # SyntaxError: invalid syntax # # (influxDB) :/tmp/backtrader$ python -V # Python 3.6.4 :: Anaconda, Inc.
  • 哦,那肯定是格式不对。只是想向您展示即使使用 3.6.4 我也遇到了同样的错误。
  • 好笑。如果我删除所有的打字,我会得到另外一袋薯片。我知道这不是真的:第 10 行,在 import pandas as pd ImportError: No module named pandas
  • 看起来您还安装了两个不同版本的 Python。您使用sudo 运行它,但没有检查版本。确保这两个执行使用相同的 Python 版本。
  • 废话!这实际上是一直以来的问题。是的,我在 conda 环境中运行脚本,没有意识到我正在使用 sudo,这意味着它将使用系统 python。
猜你喜欢
  • 2014-10-27
  • 2023-03-25
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2021-06-22
  • 2016-01-29
  • 1970-01-01
  • 2020-10-06
相关资源
最近更新 更多