Hi again, A friend of mine (waaaaay more skilled than me at Python) found the issue. The system where this problem was occuring had a manually istalled hashlib for python 2.4, and it seems that doesn't work well with hmac.py :/ .
Below is the diff he he made on the file S3/Utils.py: ============================================ $ diff ../tmp/s3cmd-0.9.9.91/S3/Utils.py S3/Utils.py 5a6,7 > import sys > import distutils.version as version 13c15,18 < from hashlib import md5, sha1 --- > if version.LooseVersion(sys.version) >= version.LooseVersion('2.5'): > from hashlib import md5, sha1 > else: > raise ImportError ============================================ That solved it for me with Python 2.4 :) Cheers! Tim. On Fri, Apr 23, 2010 at 3:25 PM, Timothee Linden <timot...@lindenlab.com>wrote: > Hi there, > > I'm a new user of s3cmd and I love it! Many thanks for making this nifty > little utility. > > I've been using s3cmd in various environments and one of them had python > 2.4.4 by default: > Python 2.4.4 (#2, Jan 24 2010, 11:50:13) > [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] > > when running s3cmd, I hit the following error: > ====================================================== > $ s3cmd ls > > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > An unexpected error has occurred. > Please report the following lines to: > s3tools-b...@lists.sourceforge.net > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > > Problem: AttributeErr: 'builtin_function_or_method' object has no attribute > 'new' > S3cmd: 0.9.9.91 > > Traceback (most recent call last): > File "/home/timothee/bin/s3cmd", line 1736, in ? > main() > File "/home/timothee/bin/s3cmd", line 1681, in main > cmd_func(args) > File "/home/timothee/bin/s3cmd", line 91, in cmd_ls > subcmd_buckets_list_all(s3) > File "/home/timothee/bin/s3cmd", line 104, in subcmd_buckets_list_all > response = s3.list_all_buckets() > File "/home/timothee/bin/S3/S3.py", line 159, in list_all_buckets > request = self.create_request("LIST_ALL_BUCKETS") > File "/home/timothee/bin/S3/S3.py", line 396, in create_request > request = S3Request(self, method_string, resource, headers, params) > File "/home/timothee/bin/S3/S3.py", line 36, in __init__ > self.sign() > File "/home/timothee/bin/S3/S3.py", line 70, in sign > signature = sign_string(h) > File "/home/timothee/bin/S3/Utils.py", line 290, in sign_string > signature = base64.encodestring(hmac.new(Config.Config().secret_key, > string_to_sign, sha1).digest()).strip() > File "hmac.py", line 107, in new > return HMAC(key, msg, digestmod) > File "hmac.py", line 42, in __init__ > self.outer = digestmod.new() > AttributeError: 'builtin_function_or_method' object has no attribute 'new' > > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > An unexpected error has occurred. > Please report the above lines to: > s3tools-b...@lists.sourceforge.net > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > ====================================================== > > Something wrong with the hmac library. > > The environment I was in also had python2.5 installed and by changing the > first line from: > #!/usr/bin/env python > to > #!/usr/bin/python2.5 > It worked again. > > However, given that s3cmd lists: > ====================================================== > if float("%d.%d" %(sys.version_info[0], sys.version_info[1])) < 2.4: > sys.stderr.write("ERROR: Python 2.4 or higher required, sorry.\n") > sys.exit(1) > ====================================================== > I was expecting it to work in 2.4.4 as well. > > > That's it, let me know if you need more information on my system; and many > thanks again for this wonderful tool! > > Tim. > > >
------------------------------------------------------------------------------
_______________________________________________ S3tools-general mailing list S3tools-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/s3tools-general