Skip to content

Instantly share code, notes, and snippets.

@mberman84
Created March 30, 2024 16:23
Show Gist options
  • Save mberman84/2ad782e90d18650dfdf42d677c18c520 to your computer and use it in GitHub Desktop.
Save mberman84/2ad782e90d18650dfdf42d677c18c520 to your computer and use it in GitHub Desktop.
OpenDevin Installation
git clone https://github.com/OpenDevin/OpenDevin.git
cd OpenDevin
conda create -n od python=3.10
conda activate od
docker ps
(optional) install docker if not already installed
docker pull ghcr.io/opendevin/sandbox
export OPENAI_API_KEY={your key}
(optional I had to install rust) curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs/) | sh
(optional) restart terminal
python -m pip install -r requirements.txt
(optional) orjson issue (MacOS)
- pip uninstall orjson
- pip install --no-cache-dir --only-binary :all: orjson
uvicorn opendevin.server.listen:app --port 3000
@Orizune
Copy link

Orizune commented May 6, 2024

export OPENAI_API_KEY={your key}

'export' is not recongnized as as intern command (i'm in windows)

@jimthedj65
Copy link

jimthedj65 commented May 7, 2024

I hope this helps someone else I had to remove miniconda and install anaconda3 and then create a requirements.txt and add the following:

datasets
pandas
litellm
termcolor
seaborn
docker
fastapi
uvicorn[standard]
ruff
mypy
langchain
langchain-core
langchain-community
llama-index
llama-index-vector-stores-chroma
chromadb
llama-index-embeddings-huggingface
llama-index-embeddings-azure-openai
llama-index-embeddings-ollama
google-generativeai
toml
termios

I then had an issue with llama-index-vector-stores-chroma with ERROR: Cannot install llama-index-vector-stores-chroma==0.1.2, llama-index-vector-stores-chroma==0.1.3, llama-index-vector-stores-chroma==0.1.4 and llama-index-vector-stores-chroma==0.1.5 because these package versions have conflicting dependencies.

I resolved that by running conda install onnxruntime -c conda-forge

I ran the server and got a further error

uvicorn opendevin.server.listen:app --port 3000
/opt/anaconda3/envs/od/lib/python3.12/site-packages/pydantic/_internal/_fields.py:160: UserWarning: Field "model_group_retry_policy" has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
ERROR:root:  File "/opt/anaconda3/envs/od/bin/uvicorn", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/main.py", line 409, in main
    run(
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/main.py", line 575, in run
    server.run()
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/server.py", line 69, in serve
    await self._serve(sockets)
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/server.py", line 76, in _serve
    config.load()
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/config.py", line 433, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/importer.py", line 22, in import_from_string
    raise exc from None
  File "/opt/anaconda3/envs/od/lib/python3.12/site-packages/uvicorn/importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/envs/od/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/Volumes/ExtremeSSD/OpenDevin/opendevin/server/listen.py", line 13, in <module>
    import agenthub  # noqa F401 (we import this to get the agents registered)
    ^^^^^^^^^^^^^^^
  File "/Volumes/ExtremeSSD/OpenDevin/agenthub/__init__.py", line 3, in <module>
    from opendevin.controller.agent import Agent
  File "/Volumes/ExtremeSSD/OpenDevin/opendevin/controller/__init__.py", line 1, in <module>
    from .action_manager import ActionManager
  File "/Volumes/ExtremeSSD/OpenDevin/opendevin/controller/action_manager.py", line 5, in <module>
    from opendevin.events.action import (
  File "/Volumes/ExtremeSSD/OpenDevin/opendevin/events/action/__init__.py", line 17, in <module>
    from .files import FileReadAction, FileWriteAction
  File "/Volumes/ExtremeSSD/OpenDevin/opendevin/events/action/files.py", line 14, in <module>
    from opendevin.runtime import E2BBox
  File "/Volumes/ExtremeSSD/OpenDevin/opendevin/runtime/__init__.py", line 3, in <module>
    from .docker.ssh_box import DockerSSHBox
  File "/Volumes/ExtremeSSD/OpenDevin/opendevin/runtime/docker/ssh_box.py", line 12, in <module>
    from pexpect import pxssh

ERROR:root:<class 'ModuleNotFoundError'>: No module named 'pexpect'

I have posted a question on backend issue here

OpenDevin/OpenDevin#1472

@Inductiv3D
Copy link

Inductiv3D commented May 12, 2024

@Orizune change 'export' to 'set' on windows

export OPENAI_API_KEY={your key}

'export' is not recongnized as as intern command (i'm in windows)

@rgtourism
Copy link

can somebody give me proper and latest installation steps.

@hydrodog
Copy link

Yes, this gist should definitely be updated. At least for linux, it was pretty far off.

For windows you need to set an environment variable, look up how to do that in Windows.

I had to generate conda with:

conda create -n od python=3.11

so that later, I could:

make build

which was the only way to generate some files that were not there.
requirements.txt needs at least the following:

datasets
pandas
litellm
termcolor
seaborn
docker
fastapi
uvicorn[standard]
ruff
mypy
langchain
langchain-core
langchain-community
llama-index
llama-index-vector-stores-chroma
chromadb
llama-index-embeddings-huggingface
llama-index-embeddings-azure-openai
llama-index-embeddings-ollama
google-generativeai
toml
pexpect
e2b
json_repair
browsergym
html2text

@hydrodog
Copy link

Ok, I finally have OpenDevin built, now what?
I wanted to give it some commands, but the folder is showing OpenDevin. Odd question, but how do I create a new project? I don't see it. I don't want it trashing the OpenDevin directory. I noticed it was immediately looking at the code in there, and I don't want OpenDevin messing with itself.

@afdhali
Copy link

afdhali commented May 22, 2024

Pip install litellm

On Mon, Apr 8, 2024, 13:38 Anis111111 @.> wrote: @.* commented on this gist. ------------------------------ uvicorn opendevin.server.listen:app --port 3000 Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in run_codeFile "C:\Users\Anis--M\anaconda3\Scripts\uvicorn.exe_main.py", line 7, in File "C:\Users\Anis--M\anaconda3\Lib\site-packages\click\core.py", line 1157, in call return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\site-packages\click\core.py", line 783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\main.py", line 409, in main run( File "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\main.py", line 575, in run server.run() File "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\server.py", line 65, in run return asyncio.run(self.serve(sockets=sockets)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\asyncio\runners.py", line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\asyncio\runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\asyncio\base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\server.py", line 69, in serve await self._serve(sockets) File "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\server.py", line 76, in serveconfig.load()File "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\config.py", line 433, in loadself.loaded_app = import_from_string(self.app http://self.app)^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\importer.py", line 22, in import_from_stringraise exc from NoneFile "C:\Users\Anis--M\anaconda3\Lib\site-packages\uvicorn\importer.py", line 19, in import_from_stringmodule = importlib.import_module(module_str)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\Anis--M\anaconda3\Lib\importlib_init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1204, in _gcd_import File "", line 1176, in _find_and_load File "", line 1147, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "", line 940, in exec_module File "", line 241, in _call_with_frames_removed File "C:\Users\Anis--M\Desktop\OpenDevin\opendevin\server\listen.py", line 5, in import litellm ModuleNotFoundError: No module named 'litellm' what shoud i do?? — Reply to this email directly, view it on GitHub https://gist.github.com/mberman84/2ad782e90d18650dfdf42d677c18c520#gistcomment-5016655 or unsubscribe https://github.com/notifications/unsubscribe-auth/BHO7XPWRFKIIXPTRWYS52IDY4LW4XBFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTEOJTG4YDSMJZU52HE2LHM5SXFJTDOJSWC5DF . You are receiving this email because you commented on the thread. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

i have some issue and i do pip install litellm.. but it still have that issue

@afdhali
Copy link

afdhali commented May 22, 2024

File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/home/jenkins888/openDevin/OpenDevin-main/opendevin/server/listen.py", line 358, in
app.mount('/', StaticFiles(directory='./frontend/dist'), name='dist')
File "/home/jenkins888/.local/share/virtualenvs/OpenDevin-main-46NLFAxI/lib/python3.10/site-packages/starlette/staticfiles.py", line 59, in init
raise RuntimeError(f"Directory '{directory}' does not exist")

ERROR:root:<class 'RuntimeError'>: Directory './frontend/dist' does not exist
01:44:26 - opendevin:INFO: manager.py:46 - Closing 0 agent(s)...
01:44:26 - opendevin:INFO: manager.py:43 - Saving sessions...
01:44:26 - opendevin:INFO: msg_stack.py:41 - Saving messages...

over 12hours+ stuck over there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment