前提・実現したいこと
Pythonで人工知能の作曲をしたいと思い、
https://inglow.jp/techblog/python-scoremake/というサイトのプログラムを使ってみようと考えています。
以下のプログラムを実行するとエラーメッセージが出ます。
us.create()についてはalreadyと書かれているので一度実行したら必要ないのでしょうか
"file"の部分のエラーは、自分でもどうしたらよいかわかりません。
発生している問題・エラーメッセージ
UserSettingsException Traceback (most recent call last) <ipython-input-16-27ecf7b879ea> in <module> 2 from music21 import * 3 us = environment.UserSettings() ----> 4 us.create() #first time only 5 6 ~\anaconda3\lib\site-packages\music21\environment.py in create(self) 1328 self._environment.write() 1329 else: -> 1330 raise UserSettingsException( 1331 'An environment configuration file already exists; ' 1332 'simply set values to modify.') UserSettingsException: An environment configuration file already exists; simply set values to modify. と --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-17-51763a8c22a6> in <module> 18 #パスの生成 19 DS = os.sep ---> 20 bs = os.path.dirname(__file__) + DS 21 xmlpath = bs + 'musicxml_simple' + DS 22 NameError: name '__file__' is not defined の二つ
該当のソースコード
#最初に設定をする場合 from music21 import * us = environment.UserSettings() us.create() #first time only #デフォルトでインストールした場合(適宜パスを変更してください。) us['musescoreDirectPNGPath'] = 'C:/Program Files/MuseScore 3/bin/MuseScore3.exe' us['musicxmlPath'] = 'C:/Program Files/MuseScore 3/bin/MuseScore3.exe' from music21 import * environment.set("musescoreDirectPNGPath", "C:/Program Files/MuseScore 3/bin/MuseScore3.exe") environment.set("musicxmlPath", "C:/Program Files/MuseScore 3/bin/MuseScore3.exe") import music21 as m21 import os import glob #パスの生成 DS = os.sep bs = os.path.dirname(__file__) + DS xmlpath = bs + 'musicxml_simple' + DS #フォルダ内のxmlファイルを取得する xmls = glob.glob(xmlpath + "*.musicxml") for x in xmls: piece = m21.converter.parse(x)
Jupyter Notebook/Labを使っていますか?
はい、使用しています
__file__のエラーに関して、自分なりに''で挟んでみたのですが、エラーは消えました。この解決方法は問題ないでしょうか
「bs = os.path.dirname('__file__') + DS」の次の行に「print(bs)」と入れてみれば分かりますが、それは単にエラーが出なくなっただけで、問題は解決していません。
#パスの生成
DS = os.sep
bs = os.path.dirname(__file__) + DS
print(bs)
xmlpath = bs + 'musicxml_simple' + DS
このような形でしょうか
os.path.dirname('__file__') + DS
ですね。+の左側が空文字列''になり、右側がWindowsのパス区切り文字'\'になるので、表示は「\」だけになります。
回答2件
あなたの回答
tips
プレビュー