Replit doesn't see any packages

I changed (broke) my setup by renaming main.py to mainold.py. I thought I would upload a new main.py I had ready, but my whole replit is now broken.

I tried to go back thru the history tab, but to no avail. The replit doesn’t see pip, pandas or any other package I had installed. Do I have to start over? I had installed TA-Lib in my directory and it took a week just to get it running…

Replit isn’t running on pip and it could bring issues to your repl, Replit are using Poetry as their Package-Manager.

It doesn’t see poetry either.

What do you mean? If you are using the pip install or pip uninstall, switch to poetry add and poetry remove

I can see the packages in the package manager, but it comes back with

ModuleNotFoundError: No module named ‘pandas’

/optionsmethod$ poetry add TA-Lib

Traceback (most recent call last):
File “/home/runner/optionsmethod/venv/bin/poetry”, line 5, in
from poetry.console import main
ModuleNotFoundError: No module named ‘poetry’

Then try downloading your repl’s files and put them in a new repl with the same template you chose. (It should fix it)

1 Like

Just wondering, what does your replit.nix file look like?

I figured I toasted this one… Now to find that wheel I used to load the TA-Lib… It was in a discussion, I gotta go thru my notes.

{ pkgs }: {
  deps = [
    pkgs.libtool
    pkgs.automake
    pkgs.autoconf
    pkgs.cmake
    pkgs.python310Full
  ];
  env = {
    PYTHON_LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
      # Needed for pandas / numpy
      pkgs.stdenv.cc.cc.lib
      pkgs.zlib
      # Needed for pygame
      pkgs.glib
      # Needed for matplotlib
      pkgs.xorg.libX11
    ];
    PYTHONBIN = "${pkgs.python310Full}/bin/python3.10";
    LANG = "en_US.UTF-8";
  };
}
1 Like

I know I dont’ have a bin with python3.10 that has anything under it.
I switched it back to the bin/python3.8/ to get it to acknowledge the packages, but it still won’t.

Not sure it makes a difference, but my python repl looks like this:

replit.nix

{ pkgs }: {
  deps = [
    pkgs.python310Full
    pkgs.replitPackages.prybar-python310
    pkgs.replitPackages.stderred
  ];
  env = {
    PYTHON_LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
      # Needed for pandas / numpy
      pkgs.stdenv.cc.cc.lib
      pkgs.zlib
      # Needed for pygame
      pkgs.glib
      # Needed for matplotlib
      pkgs.xorg.libX11
    ];
    PYTHONBIN = "${pkgs.python310Full}/bin/python3.10";
    LANG = "en_US.UTF-8";
    STDERREDBIN = "${pkgs.replitPackages.stderred}/bin/stderred";
    PRYBAR_PYTHON_BIN = "${pkgs.replitPackages.prybar-python310}/bin/prybar-python310";
  };
}

.replit

# The command that runs the program. If the interpreter field is set, it will have priority and this run command will do nothing
run = "python3 main.py"

# The primary language of the repl. There can be others, though!
language = "python3"
entrypoint = "main.py"
# A list of globs that specify which files and directories should
# be hidden in the workspace.
hidden = ["venv", ".config", "**/__pycache__", "**/.mypy_cache", "**/*.pyc"]

# Specifies which nix channel to use when building the environment.
[nix]
channel = "stable-22_11"

# The command to start the interpreter.
[interpreter]
  [interpreter.command]
  args = [
    "stderred",
    "--",
    "prybar-python310",
    "-q",
    "--ps1",
    "\u0001\u001b[33m\u0002\u0001\u001b[00m\u0002 ",
    "-i",
  ]
  env = { LD_LIBRARY_PATH = "$PYTHON_LD_LIBRARY_PATH" }

[env]
VIRTUAL_ENV = "/home/runner/${REPL_SLUG}/venv"
PATH = "${VIRTUAL_ENV}/bin"
PYTHONPATH = "${VIRTUAL_ENV}/lib/python3.10/site-packages"
REPLIT_POETRY_PYPI_REPOSITORY = "https://package-proxy.replit.com/pypi/"
MPLBACKEND = "TkAgg"
POETRY_CACHE_DIR = "${HOME}/${REPL_SLUG}/.cache/pypoetry"

# Enable unit tests. This is only supported for a few languages.
[unitTest]
language = "python3"

# Add a debugger!
[debugger]
support = true

  # How to start the debugger.
  [debugger.interactive]
  transport = "localhost:0"
  startCommand = ["dap-python", "main.py"]

    # How to communicate with the debugger.
    [debugger.interactive.integratedAdapter]
    dapTcpAddress = "localhost:0"

    # How to tell the debugger to start a debugging session.
    [debugger.interactive.initializeMessage]
    command = "initialize"
    type = "request"

      [debugger.interactive.initializeMessage.arguments]
      adapterID = "debugpy"
      clientID = "replit"
      clientName = "replit.com"
      columnsStartAt1 = true
      linesStartAt1 = true
      locale = "en-us"
      pathFormat = "path"
      supportsInvalidatedEvent = true
      supportsProgressReporting = true
      supportsRunInTerminalRequest = true
      supportsVariablePaging = true
      supportsVariableType = true

    # How to tell the debugger to start the debuggee application.
    [debugger.interactive.launchMessage]
    command = "attach"
    type = "request"

      [debugger.interactive.launchMessage.arguments]
      logging = {}

# Configures the packager.
[packager]
language = "python3"
ignoredPackages = ["unit_tests"]

  [packager.features]
  enabledForHosting = false
  # Enable searching packages from the sidebar.
  packageSearch = true
  # Enable guessing what packages are needed from the code.
  guessImports = true

# These are the files that need to be preserved when this 
# language template is used as the base language template
# for Python repos imported from GitHub
[gitHubImport]
requiredFiles = [".replit", "replit.nix", ".config", "venv"]

[languages]

[languages.python3]
pattern = "**/*.py"

[languages.python3.languageServer]
start = "pylsp"

1 Like

Thank you, before I drop it and start over, I will put in those dependency packages and see what happens.

Oh yea, that did it…

Actually, both work, in-fact, disabling poetry and using pip fixes a lot of package problems.

1 Like

Thanks for all your suggestions and help.
I started over and was pleased at the outcome and it came together quicker than I thought.

Sorry, I cannot disclose anything else about the project.

1 Like

I’m not arguing with you (I’m still fairly new, so this is just a question), but why does pip install work so well for me then?

If you want more detail, poetry updates and checks all packages when you run add or remove, resulting in a lot of CPU and RAM usage, sometimes, disabling poetry and using pip is the only way to get your repl to run.