Python NameError: global name 'val' is not definedの対処法

このQ&Aのポイント
  • Pythonで書かれたスクリプトであるwien2venus.pyを実行した際に、'NameError: global name 'val' is not defined'というエラーメッセージが表示されます。
  • このエラーは、'val'という名前の未定義の変数が使用されたことを示しています。
  • このエラーを解決するには、'val'という変数を定義するか、スクリプト内の関連するコードを修正する必要があります。
回答を見る
  • ベストアンサー

Python NameError: global name 'val' is not definedの対処法

Pythonで書かれたスクリプトである wien2venus.py(http://www.nims.go.jp/cmsc/staff/arai/wien/wien2venus.py)を実行したところ以下のようなエラーメッセージがでました。 NameError: global name 'val' is not defined というエラーはどう対処したらよいのでしょうか。 「global name 'val'」は、普通の関数ではないのでしょうか。 とても困っています。どうか、頂けないでしょうか。 お願いします。 --------------------------------------------- $ wien2venus.py 50 50 50 mesh: 50 50 50 Traceback (most recent call last): File "/usr/local/VESTA-i686/wien2venus.py", line 176, in <module> lapw5 = Lapw5(head, complex) File "/usr/local/VESTA-i686/wien2venus.py", line 13, in __init__ if val: NameError: global name 'val' is not defined ---------------------------------------------

  • Ergon
  • お礼率75% (3/4)

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

Lapw5クラスの__init__メソッドでvalが使われているけど、valは__init__の引数になっていないしグローバル変数として宣言されてもいないからエラーが出ている。 コードの後の方を見るとコマンドラインオプションで-S,-V,-C,-R,-Tの何れかを指定すればvalが設定されるから動くのではないかと思うけど。

Ergon
質問者

お礼

的確なご助言ありがとうございます。 無事に、プログラムがはしりました。 オプションをつけないといけないんですね。 全く知識がないので、困っていましたが、本当に助かりました ありがとうございました。

関連するQ&A

  • Django python

    pythonでdjangoのシステムについてお聞きしたいのですが・・ python0.95バージョンは管理画面からユーザーが追加できないため、manage.pyからshellでユーザ登録をすると教わり、試してみたのですが以下のようなネームエラーがでてしまい、ユーザ登録ができません。 どなたか御存じの方いらっしゃいましたら教えてください。。 >>> user = User.objects.create_user('hogehoge','hoge@ss.jp','456789') Traceback (most recent call last): File "<console>", line 1, in ? NameError: name 'User' is not defined 設定しなくてはいけないファイルがあるのでしょうか? よろしくお願いします。

  • Mailmanインストールについて

    CentOS5.5にMailman 2.1.14+j6をインストールしているのですが、以下の画面が表示されます。 # ./configure --prefix=/usr/local/mailman --with-python=/usr/local/python/bin/python --with-mail-gid=mailman --with-cgi-gid=apache # make # make install Compiling /usr/local/mailman/Mailman/versions.py ... ERROR:root:code for hash sha224 was not found. Traceback (most recent call last): File "/usr/local/python/lib/python2.7/hashlib.py", line 139, in <module> globals()[__func_name] = __get_hash(__func_name) File "/usr/local/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor raise ValueError('unsupported hash type %s' % name) ValueError: unsupported hash type sha224 ERROR:root:code for hash sha256 was not found. Traceback (most recent call last): File "/usr/local/python/lib/python2.7/hashlib.py", line 139, in <module> globals()[__func_name] = __get_hash(__func_name) File "/usr/local/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor raise ValueError('unsupported hash type %s' % name) ValueError: unsupported hash type sha256 ERROR:root:code for hash sha384 was not found. Traceback (most recent call last): File "/usr/local/python/lib/python2.7/hashlib.py", line 139, in <module> globals()[__func_name] = __get_hash(__func_name) File "/usr/local/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor raise ValueError('unsupported hash type %s' % name) ValueError: unsupported hash type sha384 ERROR:root:code for hash sha512 was not found. Traceback (most recent call last): File "/usr/local/python/lib/python2.7/hashlib.py", line 139, in <module> globals()[__func_name] = __get_hash(__func_name) File "/usr/local/python/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor raise ValueError('unsupported hash type %s' % name) ValueError: unsupported hash type sha512 更新の必要はありません. 上記のメッセージは、エラーなんでしょうか? Mailmanを動作させると、特に問題なく動作しているように見えます。 また、pythonのインストールは、下記の様にしています。 # ./configure \ --prefix=/usr/local/Python-2.7.2 \ --disable-ipv6 # make # make install ネットで色々調べてたのですが、全くわかりませんでした。 勉強不足で申し訳ありませんが、教えて頂けたら幸いです。 よろしくお願いします。

  • Pythonのコンパイルの仕方が分かりません。。

    Pythonのコンパイルの仕方が分かりません。。 最近、Pythonをやり始めて、 スクリプト(hello.py)を作成したのですが、 実行ができません。 どうしたらよいのでしょうか。 どなたか回答お願いします。 あと[hello.py]の中身は print “Hello, world!” です。 command lineには Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> と表示されていて、 hello.py と打つと、 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'hello' is not defined >>> 返ってきます。

  • Pythonのプログラミング(Tkinter)

    Pythonのプログラミング(Tkinter)についてです。 http://www.shido.info/py/tkinter3.html このページの通り(タイマーのコードです)にソースコードを組んだのはいいのですが、NameErrorが出ました。 NameError:name 'Frame' is not defined と表示されます。 87行目です。他に間違った場所はないのですが・・・ 原因はなんでしょう?

  • tracがうまく動きません。。。(ImportError: )

    Linuxにtracをインストールしたのですが、うまくページが表示されません。。 ■環境は以下の通りです。 OS:CentOS 5.3 Trac:0.11.4.ja1(日本語版) Python:2.5.2 Apache:2.2.11(ソースからインストール) SubVersion:1.4.2 mod_python:3.3.1 ブラウザからtracにアクセスすると以下のようなエラーメッセージが表示されます。 -------------------------------------------------------------------- MOD_PYTHON ERROR ProcessId: 10480 Interpreter: 'development' ServerName: 'development' DocumentRoot: '/public_html' URI: '/trac/' Location: '/trac' Directory: None Filename: '/public_html/trac' PathInfo: '/' Phase: 'PythonHandler' Handler: 'trac.web.modpython_frontend' Traceback (most recent call last): File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch default=default_handler, arg=req, silent=hlist.silent) File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target result = _execute_target(config, req, object, arg) File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target result = object(arg) File "/usr/local/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/web/modpython_frontend.py", line 143, in handler reload(sys.modules['trac.web']) File "/usr/local/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/web/__init__.py", line 12, in <module> from trac.web.api import * File "/usr/local/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/web/api.py", line 29, in <module> from trac.util import get_last_traceback, md5, unquote File "/usr/local/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/util/__init__.py", line 33, in <module> from trac.util.html import escape, unescape, Markup, Deuglifier File "/usr/local/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/util/html.py", line 16, in <module> from genshi import Markup, escape, unescape File "/usr/local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/__init__.py", line 33, in <module> File "/usr/local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/input.py", line 19, in <module> File "/usr/local/lib/python2.5/site-packages/_xmlplus/parsers/expat.py", line 4, in <module> from pyexpat import * ImportError: /usr/local/lib/python2.5/site-packages/_xmlplus/parsers/pyexpat.so: undefined symbol: PyUnicodeUCS4_Decode ------------------------------------------------------------------- pyexpat.soについていろいろ調べてみたのですが、分かりませんでした。。。 findコマンドでpyexpat.soを探してみましたが、見つかりません、、、 apacheのerror_logにも上記のエラーと同じものが残っていました。。 お心当たりのある方や同じエラーを解決できた方がいらっしゃいましたらご回答御願いいたします。ヒントになるような小さな事でも構いません。 宜しくお願いいたします。

  • Pythonを使ったwebアプリについて

    開発環境はUbuntu12.04 Python2.7を使用しています 初歩的な質問ですが、 webサーバを作るときに simpleserver.py --------------------------------- import SimpleHTTPServer SimpleHTTPServer.test() --------------------------------- index.html -------------------------------------- <html> <head> </head> <body> <h1>Hello! Python!</h1> </body> </html> -------------------------------------- この2つを同ディレクトリに置いて $ python simpleserver.py と入力したところ、下のようなトレースバックが表示されました ------------------------------------------------------------------------------------------ Traceback (most recent call last): File "simpleserver.py", line 2, in <module> SimpleHTTPServer.test() File "/usr/lib/python2.7/SimpleHTTPServer.py", line 216, in test BaseHTTPServer.test(HandlerClass, ServerClass) File "/usr/lib/python2.7/BaseHTTPServer.py", line 595, in test httpd = ServerClass(server_address, HandlerClass) File "/usr/lib/python2.7/SocketServer.py", line 408, in __init__ self.server_bind() File "/usr/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind SocketServer.TCPServer.server_bind(self) File "/usr/lib/python2.7/SocketServer.py", line 419, in server_bind self.socket.bind(self.server_address) File "/usr/lib/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 98] Address already in use ------------------------------------------------------------------------------------------ 解決方法が分からないので教えていただけませんか?

  • prototype.js で $ is not defined になってしまう!

    JSバージョン:prototype1.6 ブラウザ:Firefox2.0、IE7.0 OS:WinXPpro でシンプルに <html> <head> <title>$ - 指定idのエレメントを取得</title> </head> <script type="text/javascript" src="/js/prototype.js?aaads"></script> <script type="text/javascript"> function test1() { var element = $('div1'); alert(element.innerHTML); } </script> <body> <div id="div1">DIV1の中身</div> </body> </html> を実行したところ、$ is not defined と エラーになってしまいます。 あるレンタルサーバにUPして動かすと問題なく、 ローカルPCで実行するとエラーになってしまうようです。 どなたか教えて下さい!!!

  • fedora23で、authconfig-tuiで

    fedora23で、authconfig-tuiでAD参加させようとしてエラー CentOS7をAD参加させています。 それとは別途テスト環境として、fedora23で同じことをするとエラーになりました。 検索してみると、 「Python3のバイト列」と「Python2のバイト文字列」の型が違うことによってそうなっている とい事のようです。 でも、具体的に何をすれば治るのか全くわかりません。 fedora23では、authconfig-tuiは使えないのでしょうか? 代替のコマンドはあるのでしょうか? # authconfig-tui Traceback (most recent call last):VW-001 -U Administrator] File "/usr/share/authconfig/authconfig-tui.py", line 1078, in <module> sys.exit(module.run()) File "/usr/share/authconfig/authconfig-tui.py", line 666, in run if not self.doUI(): File "/usr/share/authconfig/authconfig-tui.py", line 1059, in doUI if not self.getChoices(): File "/usr/share/authconfig/authconfig-tui.py", line 1034, in getChoices rc = self.getWinbindSettings(more) File "/usr/share/authconfig/authconfig-tui.py", line 995, in getWinbindSettings anothertxt=_("Join Domain"), anothercb=self.maybeGetJoinSettings) File "/usr/share/authconfig/authconfig-tui.py", line 909, in getGenericChoices anothercb() File "/usr/share/authconfig/authconfig-tui.py", line 973, in maybeGetJoinSettings self.getJoinSettings() File "/usr/share/authconfig/authconfig-tui.py", line 954, in getJoinSettings self.info.joinDomain(True) File "/usr/share/authconfig/authinfo.py", line 4314, in joinDomain status, error = feedFork(cmd, echo, "sword:", self.joinPassword) File "/usr/share/authconfig/authinfo.py", line 953, in feedFork output += c TypeError: Can't convert 'bytes' object to str implicitly

  • pythonのimportについて

    phthonの質問です. 「みんなのpython」という本で勉強中なのですが,turtle をimportしようとすると Tkinterがうまくconfigureされていないと出ているようなエラーが出ているのですがいまいち解決法がわかりません.PATHの問題かとも思い,いろいろいじったのですが… ちなみに開発環境はVMWareでUbuntuで行っています. 実行結果は以下のような感じです. >>> from turtle import * Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.5/lib-tk/turtle.py", line 18, in <module> import Tkinter File "/usr/local/lib/python2.5/lib-tk/Tkinter.py", line 38, in <module> import _tkinter # If this fails your Python may not be configured for Tk ImportError: No module named _tkinter 以上よろしくお願い致します.

  • FedoraCore4のyumコマンドエラーについて

    こんにちは、FedoraCore4を使用しています。 yumコマンドを使用しようとしたら突然下記のようなエラーが出てしまいました。 [root@masahiro ~]# yum install httpd Traceback (most recent call last): File "/usr/bin/yum", line 15, in ? yummain.main(sys.argv[1:]) File "/usr/share/yum-cli/yummain.py", line 34, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.4/locale.py", line 379, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting [root@masahiro ~]# [root@masahiro ~]# yum update vsftpd Traceback (most recent call last): File "/usr/bin/yum", line 15, in ? yummain.main(sys.argv[1:]) File "/usr/share/yum-cli/yummain.py", line 34, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.4/locale.py", line 379, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting データベースの更新や、アップデートなどを使用としても同じエラーが出てしまいます。 どなたかご存知の方がいらっしゃいましたら、アドバイスお願いできませんでしょうか。 よろしくお願いいたします。

専門家に質問してみよう