Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installer Python script/s fail. -- No module named '_ctypes'. #1979

Closed
AMDphreak opened this issue Feb 2, 2019 · 11 comments
Closed

Installer Python script/s fail. -- No module named '_ctypes'. #1979

AMDphreak opened this issue Feb 2, 2019 · 11 comments

Comments

@AMDphreak
Copy link

AMDphreak commented Feb 2, 2019

./dev_setup.sh

Processing triggers for sgml-base (1.29) ...
Setting up docbook-xml (4.5-8) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for systemd (232-25+deb9u8) ...
Processing triggers for sgml-base (1.29) ...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1603k  100 1603k    0     0  1816k      0 --:--:-- --:--:-- --:--:-- 1816k
Traceback (most recent call last):
  File "<stdin>", line 20649, in <module>
  File "<stdin>", line 197, in main
  File "<stdin>", line 82, in bootstrap
  File "/tmp/tmplfnx9iya/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmplfnx9iya/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmplfnx9iya/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmplfnx9iya/pip.zip/pip/_internal/download.py", line 39, in <module>
  File "/tmp/tmplfnx9iya/pip.zip/pip/_internal/utils/glibc.py", line 3, in <module>
  File "/usr/local/lib/python3.7/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
Failed to set up virtualenv for mycroft, exiting setup.

Raspbian Install.

Also interesting to note that "Processing triggers for sgml-base" is listed twice. Odd?

@AMDphreak
Copy link
Author

@AMDphreak
Copy link
Author

on Raspbian, this could be added to the install script:

Git is already installed. So download the git repo into a 'cpython' subdirectory inside the 'mycroft-core' directory via git:

git clone https://github.com/python/cpython.git

And build and compile it:

cd cpython

./configure
make -j 4
sudo make altinstall

cd ..

If git is not installed, (since this script runs on all Linux), consider this before git clone:
Install from source:
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

@AMDphreak
Copy link
Author

AMDphreak commented Feb 3, 2019

New problem:

After compiling and installing cpython, The start-mycroft.sh script still fails, but continues after failing:

Traceback (most recent call last):
  File "<stdin>", line 20649, in <module>
  File "<stdin>", line 197, in main
  File "<stdin>", line 82, in bootstrap
  File "/tmp/tmpy509z2ho/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpy509z2ho/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpy509z2ho/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpy509z2ho/pip.zip/pip/_internal/download.py", line 39, in <module>
  File "/tmp/tmpy509z2ho/pip.zip/pip/_internal/utils/glibc.py", line 3, in <module>
  File "/usr/local/lib/python3.7/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
Failed to set up virtualenv for mycroft, exiting setup.
start-mycroft.sh:  Mycroft command/service launcher
usage: start-mycroft.sh [COMMAND] [restart] [params]

Services COMMANDs:
  all                      runs core services: bus, audio, skills, voice
  debug                    runs core services, then starts the CLI
  audio                    the audio playback service
  bus                      the messagebus service
  skills                   the skill service
  voice                    voice capture service
  enclosure                mark_1 enclosure service

Tool COMMANDs:
  cli                      the Command Line Interface
  unittest                 run mycroft-core unit tests (requires pytest)
  skillstest               run the skill autotests for all skills (requires pytest)

Util COMMANDs:
  audiotest                attempt simple audio validation
  audioaccuracytest        more complex audio validation
  sdkdoc                   generate sdk documentation

Options:
  restart                  (optional) Force the service to restart if running

Examples:
  start-mycroft.sh all
  start-mycroft.sh all restart
  start-mycroft.sh cli
  start-mycroft.sh unittest

It acts like it's installed, after failing.

@AMDphreak
Copy link
Author

AMDphreak commented Feb 3, 2019

When attempting to use ./start-mycroft.sh debug, it fails with multiple errors:

ModuleNotFoundError: No module named '_ctypes'
Failed to set up virtualenv for mycroft, exiting setup.
Starting all mycroft-core services
Initializing...
Starting background service bus
CAUTION: The Mycroft bus is an open websocket with no built-in security
         measures.  You are responsible for protecting the local port
         8181 with a firewall as appropriate.
./start-mycroft.sh: line 140: /var/log/mycroft/bus.log: No such file or directory
Starting background service skills
./start-mycroft.sh: line 140: /var/log/mycroft/skills.log: No such file or directory
Starting background service audio
./start-mycroft.sh: line 140: /var/log/mycroft/audio.log: No such file or directory
Starting background service voice
./start-mycroft.sh: line 140: /var/log/mycroft/voice.log: No such file or directory
Starting background service enclosure
./start-mycroft.sh: line 140: /var/log/mycroft/enclosure.log: No such file or directory
Starting cli
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/local/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/home/pi/Mycroft/mycroft-core/mycroft/__init__.py", line 17, in <module>
    from mycroft.api import Api
  File "/home/pi/Mycroft/mycroft-core/mycroft/api/__init__.py", line 18, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

@el-tocino
Copy link
Contributor

Guessing you're not using picroft, which just works.

@AMDphreak
Copy link
Author

AMDphreak commented Feb 3, 2019

      Guessing you're not using picroft, which just works.

Correct. Because I like doing other things with my Rpi in a GUI environment too, and Picroft failed to run properly and didn't detect a basic USB microphone. Can't report bugs without a GUI

@forslund
Copy link
Collaborator

forslund commented Feb 3, 2019

This is a really weird issue. Seems like the python environment on your device isn't quite working or something? _ctypes is included in the local python standard library which is used to create the mycroft virtualenv.

Can you try to delete the .venv folder in the mycroft-core directory rm -rf .venv and then rerun the dev_setup.sh script?

@forslund
Copy link
Collaborator

Hi, since there's been no communication on this issue for 4 months I'm going to close it. If you're still experiencing this problem feel free to reopen the issue.

@nilknow
Copy link

nilknow commented Jul 5, 2019

I found answer here, Zachary Ware's answer. I used yum install libffi-dev to fix it.

@zonender
Copy link

zonender commented Jan 28, 2020

I found answer here, Zachary Ware's answer. I used yum install libffi-dev to fix it.

Yes that worked for me, I made sure these packages are installed on my Centos 7:

sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel libffi-dev gcc gcc-c++ zlib libffi-devel

Then reinstalled my python 3.8.1:

wget http://python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz

tar xf Python-3.6.8.tar.xz

cd Python-3.6.8

./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"

make && make altinstall

Then I was finally able to install docker-compose:

pip3.8 install docker-compose

Thanks @grossshen

@andb0t
Copy link

andb0t commented Apr 7, 2021

This fixed it for me (using pipenv and pyenv in an Ubuntu 18.04 Docker image):

# install the missing module
apt-get install libffi-dev

# remove the pipenv environment
pipenv --rm

# reinstall python 3.9.3
pyenv uninstall 3.9.3
pyenv install 3.9.3

# reinstall modules
pipenv install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants