thevickypedia / Jarvis

Fully Functional Voice Based Natural Language UI
https://jarvis-health.vigneshrao.com
MIT License
207 stars 41 forks source link

Error Messages #38

Closed WonderfulDoge72 closed 2 months ago

WonderfulDoge72 commented 3 months ago

First of all, thanks so much for the great project. However, when I try using the install line I get these errors:

  1. ERROR: Could not build wheels for aiohttp, pyobjc-core, pyobjc-framework-Cocoa, which is required to install pyproject.toml-based projects

I am running this on Visual Studio code on Mac OS Sonoma 14.5. I Ensured Required Build Tools, Upgraded pip, setuptools, and wheel, Manually Installed Dependencies, and Checked for Pre-built Wheels, but still have no luck. Im sorry if this is rather a dumb question, but I'm quite new to python and could not find anything to solve my problem.

dormant-user commented 3 months ago

@WonderfulDoge72 Thanks for raising an issue Which version of python are you using?

Also aiohttp support for python 3.11/3.12 is still in beta, so try to manually install aiohttp==3.8.6 PyObjc is also pinned with 9.0.1 from a downstream dependency py3tts

If you haven't done already, I'd suggest deleting any previous versions and clean any virtual environments I'd recommend the following

python3.11 -m venv venv
source venv/bin/activate

# this should pull the latest changes in master branch
pip install --no-cache git+https://github.com/thevickypedia/Jarvis.git

jarvis install  # you may have to run this step twice in case of conflicts during multi-threading

And finally,

pip install --no-cache aiohttp==3.8.6 pyobjc==9.0.1

Please try the above, and let me know how it goes.

WonderfulDoge72 commented 3 months ago

It worked. Thanks so much for your help. Unfortunately, I just realized I have an arm64 processor but need an AMD one to run the code. I will buy another computer in the next week that is compatible and hopefully run Jarvis. Thanks again for the awesome project and fast reply.

dormant-user commented 3 months ago

The wake word detection library (picovoice older than v2) is the only dependency that cannot run on ARM based machines. I intentionally hard coded picovoice to 1.9 since their newer versions are not open source. I was going to create my own light weight wake word detection engine but the process is pretty time taking. So you can still install all the dependencies manually and run jarvis start which should kick off even in ARM based machines.

Only the installation process is restricted to AMD

WonderfulDoge72 commented 3 months ago

I was able to manually install dependencies listed on the version_locked_requirements.txt, but for some reason, it now gives me this error when I use the Jarvis start command: SyntaxError: multiple exception types must be parenthesized. Any solutions? I know this indicates that when handling multiple exception types within a single except block, you need to enclose them within parentheses, but I don't know where to add parentheses around the list of exception types I want to handle.

dormant-user commented 3 months ago

@WonderfulDoge72 - I appreciate your efforts to get this working. For starters, the version_locked_requirements.txt is not the only source for dependencies.

I pushed out a change d833150 this morning, to give an option to the user to continue installation on untested architectures. Can you please purge any existing environments and do the below,

Use python 3.10 or 3.11 with a virtual environment

pip install git+https://github.com/thevickypedia/Jarvis.git

jarvis install

As far as I know, porcupine - v3 is the only library you might need to install after doing the steps above. I couldn't get myself to having to generate a token just for wake word detection and I primarily run Jarvis on my AMD machine. So I never re-visited to spend the time to figure out what's going on with machines running other processors.

Let me know how it goes. Good luck.

WonderfulDoge72 commented 3 months ago

Thanks for the enhancements. I am running Python 3.11.0 64-bit on a Mac OS Sonoma 14.5 in VS code. I uninstalled and deactivated everything and started a new virtual environment. However, when I type in the pip commands to install, the console still gives me this error:

Current Architecture: arm64
Jarvis is currently supported only on AMD machines.

The console does not give me another option or show any effort in trying to keep installing. Where can I get the complete list of dependencies to install manually? Thanks so much for your patience and understanding.

dormant-user commented 3 months ago

I think you may have done a pip install jarvis-ironman Can you try the following

rm -rf venv  # (or your virtual env's name)

python3.11 -m venv venv && source venv/bin/activate

python -V && which python  # Make sure this points to 3.11.0 and it is the python within the venv you created

pip install --no-cache --force git+https://github.com/thevickypedia/Jarvis.git

The latest commit on master branch should display these lines

Btw, this isn't an IDE issue, this is an installation problem.

WonderfulDoge72 commented 3 months ago

What you told me works. I am seeing the new Y/N for the ARM processor option to install. However, jarvis install still does not work. I run jarvis install it first gives me this: One or more installation threads have failed!! Please set JARVIS_VERBOSITY=1 and retry to identify root cause. Therefore, I ran export JARVIS_VERBOSITY=1. These are the specific errors that the terminal gives me after runningexport JARVIS_VERBOSITY=1:

Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try pip install --use-pep517.

Custom 'build_py' does not implement 'get_data_files_without_manifest'. Please extend command classes from setuptools instead of distutils.See https://peps.python.org/pep-0632/ for details.

Please avoid running setup.py directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.

Please avoid running setup.py directly. Instead, use pypa/build, pypa/installer or other standards-based tools.

See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.

ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (gTTS) Thread processing for '/Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m pip install --verbose --no-cache -r /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/jarvis/lib/version_locked_requirements.txt' received an exception: AssertionError("'/Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m pip install --verbose --no-cache -r /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/jarvis/lib/version_locked_requirements.txt' returned exit code 1")

Thanks again for your patience and for being so nice about helping me with these issues.

dormant-user commented 3 months ago

There is a long standing issue about the PEP-517 For more info: https://github.com/pypa/pip/issues/9081 Apparently using --use-pep517 flag is the workaround which can also be set as env var ~But I wonder why it's causing an issue specifically on ARM machines. I haven't tested this on an ARM yet, probably it's time to do so. I'll get back to you after testing it. Meanwhile if you're able to figure out, feel free to work off a branch and raise a PR if you get to fixing it first.~

Update I just tested the latest version on an ARM machine and I didn't run into any hiccups

***********************************************************************************************************************************************************************************************************
                                                                                        Installation has completed!                                                                                        
***********************************************************************************************************************************************************************************************************
(venv) Vignesh Rao ~ % uname -m          
arm64
(venv) Vignesh Rao ~ % 
(venv) Vignesh Rao ~ % which python
/Users/vmac/Desktop/git/Jarvis/venv/bin/python
(venv) Vignesh Rao ~ % 
(venv) Vignesh Rao ~ % python -V         
Python 3.11.9
(venv) Vignesh Rao ~ % 
(venv) Vignesh Rao ~ % pip -V            
pip 24.1.1 from /Users/vmac/Desktop/git/Jarvis/venv/lib/python3.11/site-packages/pip (python 3.11)
(venv) Vignesh Rao ~ % 
Vignesh Rao ~ % sw_vers | grep Product
ProductName:            macOS
ProductVersion:         14.5
(venv) Vignesh Rao ~ % 
(venv) Vignesh Rao ~ % pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
version: 15.3.0.0.1.1708646388
(venv) Vignesh Rao ~ % 
(venv) Vignesh Rao ~ % brew -v
Homebrew 4.3.5
(venv) Vignesh Rao ~ % 
(venv) Vignesh Rao ~ % git rev-parse HEAD
d8c83d81cadd9582180ef0b7e6af68ce1e0a0918
(venv) Vignesh Rao ~ % 

Can you cross check all the package versions as above.

This is the output of my pip freeze, perhaps you can try and install this directly and see if anything changes. Something like,

pip install --no-cache --no-cache-dir --force-reinstall -r arm_req.txt

arm_req.txt

WonderfulDoge72 commented 2 months ago

Interesting. I am on a month-long vacation, so I haven't had much time to work on this. I did cross-check the package versions, and they appear to be somewhat identical, given that newer versions of some software have been released since the provided comment. Installing directly does not work, as my pip could not find the source code to build any of the wheels. I have asked some of my friends who are far more advanced in Python as well. It may just be my computer, so I will maybe test this on a different model/OS. I don't know if you have any more solutions to my issues but thanks for everything, and know that I will not give up until Jarvis works. I will keep you updated and if any fixes or improvements come up, let me know.