私はanacondaを持つシステムでpython 2.7.3を実行しています。私は最近、インターネット・アーカイブインストールPIPと私はコマンドラインからインストールプログラムを実行したとき、私は以下を参照してください。エラー:Python 2.7の下でos.unameという名前のモジュールがありません。
AttributeError: 'module' object has no attribute 'uname'
は私もPythonのアイドルコマンドラインの中からこれを試してみました。モジュールはうまくロードされますが、同じエラーが発生します。 https://docs.python.org/2/library/os.html#os.uname
私のインストール::それはここでは、PythonでOSの一部として文書化されているようどうやらos.uname()は、私のインストールから欠落してい
>>> import os
>>> dir(os)
[ 'F_OK'、 'O_APPEND'、「O_BINARY '、' O_TEMPORARY '、' O_TEXT '、' O_TRUNC '、' O_WRONLY '、' O_REQUIRT '、' O_REQUIRT '、' O_REQUIRT ' P_OVERLAY、P_WAIT、R_OK、SEEK_CUR、SEEK_END、SEEK_SET、TMP_MAX、UserDict、W_OK、X_OK、 '、' _Environ '、' すべて '、' ビルトイン '、' ドキュメント」、 'ファイル'、 '名前'、 'パッケージ'、 '_copy_reg'、 '_execvpe'、 '_exists'、 '_exit'、 '_get_exports_list'、 '_make_stat_result'、 '_make_statvfs_result' 'alt'、 'chdir'、 'chmod'、 'close'、 'closer'、 'curdir'、 'defpath'、 'devnull'、 ''、 '_pickle_stat_result'、 '_pickle_statvfs_result' execv '、' execvp '、' execvp '、' execv '、' execv '、' execv '、' execv '、' execv ' 「getse」、「get」、「getpid」、「isatty」、「kill」、「linesep」、「listdir」、 'path'、 'path'、 'pipe'、 'popen'、 'popen2'、 'popen3'、 ' 'popen4'、 'putenv'、 'read'、 'remove'、 'removedirs'、 'rename'、 'rename'、 'rmdir'、 'sep'、 'spawnl'、 'spawnle'、 'spawnv' 'spawn'、 'startfile'、 'stat'、 'stat_float_times'、 'stat_result'、 'statvfs_result'、 'strerror'、 'sys'、 'system'、 'tempnam'、 'times'、 'tmpfile'、 'tmpnam 'wait'、 'walk'、 'walk'、 'write']
他のすべてのpythonのように見えているとされています。どこで私は間違えましたか? unameがないpython.osのバージョンがありますか?私は窓のマシンです。それは問題ですか?ここで
は、モジュール(インターネット・アーカイブでsession.py)内の関連するコードです:
def _get_user_agent_string(self):
"""Generate a User-Agent string to be sent with every request."""
uname = os.uname()
try:
lang = locale.getlocale()[0][:2]
except:
lang = ''
py_version = '{0}.{1}.{2}'.format(*sys.version_info)
return 'internetarchive/{0} ({1} {2}; N; {3}; {4}) Python/{5}'.format(
__version__, uname[0], uname[-1], lang, self.access_key, py_version)
... <elsewhere> ...
self.headers['User-Agent'] = self._get_user_agent_string()
だからコーダは怠惰であり、こののWindows-をしなかった(以下の回答で述べたように)ように思えます互換性があります。彼らはオプションの 'self.headers [' User-Agent ']'をAPIに提供し、私が提供する任意の文字列で動作する必要があります。だから私はこれをハックすることができます。
これは、Windowsマシン用の注意書きがないinternetarchiveのpythonモジュールのバグですか? –
ウィンドウには 'uname'コマンドがないので、ウィンドウ下にはありません。 Unixシステムはそのコマンドを提供し、Pythonがそれを呼び出してその結果を得ることを可能にします。 – aluriak