Share your repls and programming experiences

← Back to all posts
Using Pip On Repl.it
tra38 (13)

Repl.it allows you to easily load Python modules that are on PyPi, but I needed to write some code that relied on a Python module hosted on GitHub specifically (long story short: it's a temporary fork of another Python package, and I didn't feel it would be necessary to deploy it up onto PyPi). So I wound up doing some weird stuff to wind up using that Python package hosted on GitHub.

You can read my blog post to explain the weird stuff that I did: https://tra38.github.io/blog/using-pip-on-repl-it.html

Here is my final Repl (https://repl.it/@tra38/LittleNiftySubweb-Experimental\) where I successfully loaded up my Python package from GitHub.

I hope this experience will be useful for you if you wind up needing to do something like this!

Commentshotnewtop
PaoloAmoroso (176)

Your post is 8 months old. I've joined Repl.it just a few weeks ago and I see git is now available in the shell. I was wondering if you later got a chance to try pip with GitHub.

tra38 (13)

@PaoloAmoroso Eventually, my code was merged into the master branch and the updated package deployed onto PyPy, so I didn't really need to maintain the "Experimental" repl, and just used https://repl.it/@tra38/LittleNiftySubweb exclusively.

Your post did inspire me to fork my existing repl and update it to use git instead of a zip file. It works wonderfully. Here's my new repl that proves that I can indeed install package with pip using a git url. No more zip files for me!

The code snippet:

def set_up_user_directory():
  import sys
  import site
  # this makes it work
  if not os.path.exists(site.USER_SITE):
    os.makedirs(site.USER_SITE)
    # since I'm installing with --user, packages
    # should be installed here,
    #so make sure it's on the path
    sys.path.insert(0, site.USER_SITE)

def install(package):
  set_up_user_directory()
  import pip
  pip.main(['install', package, "--user", "--upgrade"])

install("git+https://github.com/tra38/[email protected]")
JJJ2008 (1)

Doesn't work for me? Any help? It says module howdoi not found.

tra38 (13)

@JJJ2008 Hi, I just tried to run the repl and it works for me, but I do see an exception message:

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
WARNING: You are using pip version 20.1.1; however, version 20.3.3 is available.
You should consider upgrading via the '/opt/virtualenvs/python3/bin/python -m pip install --upgrade pip' command. 

Looking at the GitHub issue link, it seems that sometimes it might raise the "module [module_name] not found" error, so I will try to fix that warning. For now, can you try the script to see if it is now usable? Thanks.

JJJ2008 (1)

@tra38 still doesn't work, but I found a different way