Search code examples
pythonsvnsetuptools

Python: How to connect to a protected svn repository with setuptools


I am trying to configure a setuptools.setup script. PyPI packages works fine but I don't manage to install the 'mypackage' module from my svn repository. I get the error:

Couldn't find index page for 'myotherpackage' (maybe misspelled?)

  • Did I forget something important concerning the dependency_links parameter?
  • Are the provided parameters (see below) ok?

setup.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from setuptools import setup, find_packages
version = '2.5'

setup(name='myotherpackage',
      description='My main package called myotherpackage',
      packages=find_packages(),
      version=version,
      zip_safe=False,
      include_package_data=True,
      install_requires=['nose','tweepy','myotherpackage'],
      dependency_links=['https://code.myrep.net/svn/experimenta/user/myotherpackage/'],
      test_suite='nose.collector', 
      test_require = 'nose',
      )

Solution

  • I think you need to add to add some information (#egg=myotherpackage) on the end of the dependency_links url, like this:

    dependency_links=['https://code.myrep.net/svn/experimenta/user/myotherpackage/#egg=myotherpackage'],
    

    This is so that setuptools knows what it is downloading.

    I tried it with a modified version of your file, replacing your svn link with one I found on the Internet:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from setuptools import setup, find_packages
    version = '2.5'
    
    setup(name='myotherpackage',
          description='My main package called myotherpackage',
          packages=find_packages(),
          version=version,
          zip_safe=False,
          include_package_data=True,
          install_requires=['nose','tweepy','setuptools-dev06'],
          # works
          dependency_links=['http://svn.python.org/projects/sandbox/branches/setuptools-0.6/#egg=setuptools-dev06'],
          # doesn't work
          #dependency_links=['http://svn.python.org/projects/sandbox/branches/setuptools-0.6/'],
          test_suite='nose.collector',
          test_require = 'nose',
          )
    

    This worked for me. When I comment out the line with the #egg=setuptools-dev06, and uncomment the line that just ends with a / , that doesn't work.