﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
90	python: (2.7.6) problem determining filesystem encoding	Lewis Rosenthal	Yuri Dario	"This is tangentially related to getting SSL support for yum repos, so I'll open this here. Frankly, python is so complex that we should probably break it out into its own project, here, but I'll leave that to you, Yuri. ;-)

I needed to install M2Crypto as I am having difficulty accessing my repo mirror via SSL (different ticket - to be created). M2Crypto seems to want to be installed via setuptools. Installing setuptools should be fairly straightforward:

{{{
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | python
}}}

however, once the installation starts, the fun begins:


{{{
Extracting in c:/var/temp/tmpcqr6rs
Now working in c:/var/temp/tmpcqr6rs/setuptools-5.6
Installing Setuptools
running install
running bdist_egg
running egg_info
writing requirements to setuptools.egg-info/requires.txt
writing setuptools.egg-info/PKG-INFO
writing top-level names to setuptools.egg-info/top_level.txt
writing dependency_links to setuptools.egg-info/dependency_links.txt
writing entry points to setuptools.egg-info/entry_points.txt
Traceback (most recent call last):
  File ""setup.py"", line 219, in <module>
    dist = setuptools.setup(**setup_params)
  File ""J:/usr/lib/python2.7/distutils/core.py"", line 152, in setup
    dist.run_commands()
  File ""J:/usr/lib/python2.7/distutils/dist.py"", line 953, in run_commands
    self.run_command(cmd)
  File ""J:/usr/lib/python2.7/distutils/dist.py"", line 972, in run_command
    cmd_obj.run()
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/install.py"", line 67, in run
    self.do_egg_install()
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/install.py"", line 109, in do_egg_install
    self.run_command('bdist_egg')
  File ""J:/usr/lib/python2.7/distutils/cmd.py"", line 326, in run_command
    self.distribution.run_command(command)
  File ""J:/usr/lib/python2.7/distutils/dist.py"", line 972, in run_command
    cmd_obj.run()
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/bdist_egg.py"", line 152, in run
    self.run_command(""egg_info"")
  File ""J:/usr/lib/python2.7/distutils/cmd.py"", line 326, in run_command
    self.distribution.run_command(command)
  File ""J:/usr/lib/python2.7/distutils/dist.py"", line 972, in run_command
    cmd_obj.run()
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/egg_info.py"", line 168, in run
    self.find_sources()
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/egg_info.py"", line 193, in find_sources
    mm.run()
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/egg_info.py"", line 277, in run
    self.add_defaults()
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/egg_info.py"", line 306, in add_defaults
    sdist.add_defaults(self)
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/sdist.py"", line 151, in add_defaults
    self.filelist.append(fn)
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/egg_info.py"", line 220, in append
    if self._safe_path(path):
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/command/egg_info.py"", line 240, in _safe_path
    u_path = unicode_utils.filesys_decode(path)
  File ""C:/var/temp/tmpcqr6rs/setuptools-5.6/setuptools/unicode_utils.py"", line 31, in filesys_decode
    return path.decode(enc)
TypeError: decode() argument 1 must be string, not None
Something went wrong during the installation.
See the error message above.
}}}

Looking at the section in question in unicode_utils.py, he see:

{{{
def filesys_decode(path):
    """"""
    Ensure that the given path is decoded,
    NONE when no expected encoding works
    """"""

    fs_enc = sys.getfilesystemencoding()
    if isinstance(path, decoded_string):
        return path

    for enc in (fs_enc, ""utf-8""):
        try:
            return path.decode(enc)
        except UnicodeDecodeError:
            continue
}}}

Result: cannot install setuptools.

I've tried this under a variety of shells, too, but to no avail. Filesystem is JFS."	defect	closed	Feedback Pending		python		highest	duplicate		
