Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Cannot pip install from PyPI feed connected to another feed



  • I have two python feeds: DevPyPI and PrdPyPI.
    DevPyPI has a connector to PrdPyPI.
    I publish mypackage on PrdPyPI.
    mypackage shows up in DevPyPI (web interface) but it cannot be installed from DevPyPI using pip.

    PS> pip install mypackage==1 -i https://domain.com/pypi/DevPyPI/simple --user --no-cache-dir
    Looking in indexes: https://domain.com/pypi/DevPyPI/simple
    Collecting mypackage==1
    ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='domain.com', port=443): Max retries exceeded with url: /pypi/DevPyPI/download/mypackage/1/mypackage-1-py3-none-any.whl (Caused by ResponseError('too many 500 error responses',))


  • inedo-engineer

    Hello;

    A 500 error should be logged in ADmin > Diagnostic Center, so if you can check there and find it, that should help us identify what could be causing it.

    Is it only that package, or all packages? If it seems to be package-specific, please share the package to us (or a version that still breaks, but has sensitive information removed), then we can try to reproduce the bug and fix it.



  • Strange, I didn't receive a notification that you replied... Ah, I had to subscribe.

    I just have reproduced the issue. Here's what I have in the Diagnostic Center.

    First there is a warning (5 times the same).

    Logged: 4/3/2020 8:57:54 AM
    Level: Warning
    Category: Feed
    Details: none
    
    Message:
    Unable to open file mypackage/1/: 
    System.IO.DirectoryNotFoundException: Could not find a part of the path 
    'E:\ProGetData\Packages\.pypi\F11\mypackage\1\'.
    at System.IO.__Error.WinIOError(Int32 errorCode, String 
    maybeFullPath)
    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess 
    access, Int32 rights, Boolean useRights, FileShare share, Int32 
    bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String 
    msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess 
    access, FileShare share, Int32 bufferSize, FileOptions options)
    at Inedo.IO.FileEx.Open(String fileName, FileMode fileMode, 
    FileAccess fileAccess, FileShare fileShare, FileOptions fileOptions)
    at 
    Inedo.ProGet.Extensions.FileSystems.DirectoryFileSystem.OpenFileAsync(String
    fileName, FileMode mode, FileAccess access, FileShare share, Boolean 
    requireRandomAccess)
    at 
    Inedo.ProGet.Extensibility.PackageStores.FileSystemPackageStore.<TryOpenStreamAsync>d__18.MoveNext()
    

    Then there is an error (6 times the same).

    Logged: 4/3/2020 9:05:11 AM
    Level: Error
    Category: Web
    
    Message:
    An error occurred processing a GET request to 
    https://mydomain/pypi/DevPyPI/download/mypackage/1/mypackage-1-py3-none-any.whl:
    Invalid URI: The format of the URI could not be determined.
    
    Details:
    System.UriFormatException: Invalid URI: The format of the URI could not be determined.   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)   at System.Net.WebRequest.CreateHttp(String requestUriString)   at Inedo.ProGet.Feeds.StrongConnector.CreateWebRequestAsync(String url)   at Inedo.ProGet.Feeds.Pypi.PypiConnector.<OpenPackageFileAsync>d__11.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at Inedo.ProGet.Feeds.Pypi.PypiFeed.<OpenPackageFileAsync>d__20.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at Inedo.ProGet.WebApplication.FeedEndpoints.Pypi.PackageDownloadHandler.<ProcessRequestAsync>d__0.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at Inedo.ProGet.WebApplication.FeedEndpoints.Pypi.PypiHandler.<ProcessRequestAsync>d__2.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at 
    Inedo.ProGet.WebApplication.FeedEndpoints.FeedEndpointHandler.FeedRequestHandler.<ProcessRequestAsync>d__8.MoveNext()
    

    My package is very simple, it has no dependencies and one python module. You could try this.

    setup.py

    from setuptools import setup
    
    setup(
        name='mypackage',
        version='1',
        description='My package',
        author='My Name',
        author_email='My@Email.com',
        py_modules=["mypackage"],
        zip_safe=False
    )
    

    mypackage.py

    print("Hello, world!")
    

  • inedo-engineer

    The first error is a known issue, it's related to browsing for packages in the UI, and it's something we've already addressed. I'm not sure about the second error.

    As for the package, can you provide a package file that we can actually upload to a test instance of ProGet?

    Basically I want to take a package file, then upload it from the UI, then try to download it from the UI. By not involving Python tools, we can eliminate a lot of problems and simplify finding solution.



  • @atripp
    I can't upload files here (except images). Can you get them from wetransfer?
    If not, see packaging and uploading python packages.


  • inedo-engineer

    Hello; we transfer would be great. I can download it, and attach to the internal ticket for this forum post! I don't have a local python environment, so best to just get files and manually upload.



  • @atripp The link will expire in 3 days: wetransfer


  • inedo-engineer

    Thanks, just confirming it was received, and I've attached it to the internal ticket. Stay tuned!


  • inedo-engineer

    Hello; thanks to your package, we were able to reproduce this, and it's going to fixed as PG-1695 in the next maintenance release. Thanks!


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation