2017-09-16 22 views
0

私は最近、Macにxlwingsをインストールしました。現在、リクエストを介していくつかのデータを更新するための小さなプログラムを作成しようとしています。テストとして、私はAPIを介してcryptocurrency価格を更新し、それらをExcelに書き込もうとしました。 runpythonを使用しない場合、コードは機能します。しかし、すぐに私は私のVBAコードを実行すると、 私はこのエラーを取得する:xlwings runpython EOLエラー

File "<string>", line 1 

import sys, os;sys.path.extend(os.path.normcase(os.path.expandvars('/Users/Dennis/Documents/crypto; 

                           ^

SyntaxError: EOL while scanning string liberal 

私は、多くのスレッドやフォーラムを検索しましたが、私の問題に答えを見つけるように見えることはできません。より良く理解するために 、

私のpythonコード:

import requests, json 
from datetime import datetime 
import xlwings as xw 

def do(): 
    parameter = {'convert' : 'EUR'} 

    #anfrage über API 
    query_ticker = requests.get('https://api.coinmarketcap.com/v1/ticker', params = parameter) 


    #anfragedaten in JSON-format 
    data_ticker = query_ticker.json() 


    wb = xw.Book.caller() 
    ws0 = wb.sheets['holdings'] 

    for entry in data_ticker: 

     # update eth price 
     if entry['symbol'] == 'ETH': 
     ws0.range('B14').value = float(entry['price_eur']) 

     #update btc price 
     if entry['symbol'] == 'BTC': 
     ws0.range('B15').value = float(entry['price_eur']) 

     if entry['symbol'] == 'NEO': 
     ws0.range('B16').value = float(entry['price_eur']) 

     if entry['symbol'] == 'XRP': 
     ws0.range('B17').value = float(entry['price_eur']) 

    now = datetime.now() 
    write_date = '%s.%s.%s' %(now.day, now.month, now.year) 
    write_time = '%s:%s:%s' %(now.hour, now.minute,now.second) 

    ws0.range('B2').value = write_date 
    ws0.range('B3').value = write_time 

    wb.save('holdings.xlsm') 
    #wb.close() 

これは私のVBAコードです:

Sub update_holdings() 
    RunPython ("import update_holdings; update_holdings.do()") 
End Sub 
+0

あなたが掲示したエラーの外見から、文字列割り当ての一重引用符が見つからない可能性があります – jsotola

+0

私にとっては、ファイルパスが渡される方法に何か問題があるようです。しかし、私は、 'import sys [..]'エラーが何を指しているのか、それとも私に何を伝えようとしているのかを少しでも分かりません。私のコードでわかるように、私はsysモジュールでは動作しませんでした。 – ohlawd

+0

編集:xlwings fibonacciのサンプルファイルをダウンロードしましたが、まったく同じエラーがスローされます。 PYTHONPATHで何かできますか?問題は、私はこの分野ではあまり経験がありません。 – ohlawd

答えて

0

はこれを解決しました。私は、同じ問題に直面している可能性のある人のためにソリューションを投稿したかっただけです。

"INTERPRETER"と "PYTHONPATH"の設定を確認するために、xlwings.confファイルを確認しました。私はこれを編集したことはありませんでしたが、間違ってフォーマットされました。

正しい形式は次のとおりです。

"PYTHONPATH"," 
" 
"INTERPRETER","Python" 

また、私のpythonへのパスがデフォルトで正しく設定されました:

"INTERPRETER","pythonw" 
"PYTHONPATH","" 

私の設定ファイルは、セットアップをこのようにしました。私のコマンドラインはAnacondaのpython 3.6で動作しますが、 "pythonw"は、macOSでプリインストールされたPython 2.7を参照している.bash_profileに設定されたインタプリタを使用していました。 設定ファイル "INTERPRETER"を編集すると、この問題が解決しました。

ありがとうございました。

関連する問題