[Distutils] Absolute destination path in data_files

Taylor, Martin cmtaylor at ti.com
Tue Jun 21 17:12:01 CEST 2005


In the document "Distributing Python Modules" by Greg Ward, section "2.6
Installing Additional Files" has the following example:
 
setup(...
      data_files=[('bitmaps', ['bm/b1.gif', 'bm/b2.gif']),
                  ('config', ['cfg/data.cfg']),
                  ('/etc/init.d', ['init-script'])]
     )

which I understand to be showing, in the last line, that a path
proceeded by a "/" is an absolute destination path for the file names
following it.  When I try this in the following example:
 
setup(name="FOO",
      description="FOO - A Generic Package",
      version=__version__,
      package_dir = {"FOO" : "Core",
                     "FOO.EngA" : "EngA",
                     "FOO.EngB" : "EngB"},
      packages    = ["FOO", "FOO.EngA", "FOO.EngB"],
      data_files=[('/FOO/FOO_BAR',
                    ["UtilA\CMDTestClient.py",
                     "UtilA\StopTestServer.py",
                     "UtilA\TestClient.py",
                     "UtilA\TestServer.py"]
                 )],
      author="C. Martin Taylor",
      author_email="cmtaylor at ti.com <mailto:cmtaylor at ti.com> "
     )
 
and then build it with the command:
 
    python setup.py bdist --format=wininst
 
I get the following error messages:
 
C:\FOO>python setup.py bdist --format=wininst
running bdist
running bdist_wininst
running build
running build_py
installing to build\bdist.win32\wininst
running install_lib
creating build\bdist.win32\wininst
creating build\bdist.win32\wininst\PURELIB
creating build\bdist.win32\wininst\PURELIB\FOO
creating build\bdist.win32\wininst\PURELIB\FOO\EngA
copying build\lib\FOO\EngA\EngA.py ->
build\bdist.win32\wininst\PURELIB\FOO\EngA
copying build\lib\FOO\EngA\__init__.py ->
build\bdist.win32\wininst\PURELIB\FOO\EngA
creating build\bdist.win32\wininst\PURELIB\FOO\EngB
copying build\lib\FOO\EngB\EngB.py ->
build\bdist.win32\wininst\PURELIB\FOO\EngB
copying build\lib\FOO\EngB\EngBConstants.py ->
build\bdist.win32\wininst\PURELIB\FOO\EngB
copying build\lib\FOO\EngB\__init__.py ->
build\bdist.win32\wininst\PURELIB\FOO\EngB
copying build\lib\FOO\FOO.py -> build\bdist.win32\wininst\PURELIB\FOO
copying build\lib\FOO\FOOLog.py -> build\bdist.win32\wininst\PURELIB\FOO
copying build\lib\FOO\FOO_CommonCode.py ->
build\bdist.win32\wininst\PURELIB\FOO
copying build\lib\FOO\FOO_UDF.py ->
build\bdist.win32\wininst\PURELIB\FOO
copying build\lib\FOO\FOO_Version.py ->
build\bdist.win32\wininst\PURELIB\FOO
copying build\lib\FOO\__init__.py ->
build\bdist.win32\wininst\PURELIB\FOO
running install_data
creating build\bdist.win32\wininst\DATA
Traceback (most recent call last):
  File "setup.py", line 49, in ?
    author_email="cmtaylor at ti.com <mailto:cmtaylor at ti.com> "
  File "C:\Python24\lib\distutils\core.py", line 149, in setup
    dist.run_commands()
  File "C:\Python24\lib\distutils\dist.py", line 946, in run_commands
    self.run_command(cmd)
  File "C:\Python24\lib\distutils\dist.py", line 966, in run_command
    cmd_obj.run()
  File "C:\Python24\lib\distutils\command\bdist.py", line 146, in run
    self.run_command(cmd_name)
  File "C:\Python24\lib\distutils\cmd.py", line 333, in run_command
    self.distribution.run_command(command)
  File "C:\Python24\lib\distutils\dist.py", line 966, in run_command
    cmd_obj.run()
  File "C:\Python24\lib\distutils\command\bdist_wininst.py", line 152,
in run
    install.run()
  File "C:\Python24\lib\distutils\command\install.py", line 505, in run
    self.run_command(cmd_name)
  File "C:\Python24\lib\distutils\cmd.py", line 333, in run_command
    self.distribution.run_command(command)
  File "C:\Python24\lib\distutils\dist.py", line 966, in run_command
    cmd_obj.run()
  File "C:\Python24\lib\distutils\command\install_data.py", line 62, in
run
    dir = convert_path(f[0])
  File "C:\Python24\lib\distutils\util.py", line 89, in convert_path
    raise ValueError, "path '%s' cannot be absolute" % pathname
ValueError: path '/FOO/FOO_BAR' cannot be absolute

 
Does anyone have an idea what is wrong here?  Am I misinterpreting the
document, or is there a bug in ActivePython 2.4?
 
Thank you,
 
C. Martin Taylor 
Sr. Test Automation Specialist 
Texas Instruments, Inc. 
Educational and Productivity Solutions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/distutils-sig/attachments/20050621/4d670820/attachment.htm


More information about the Distutils-SIG mailing list