GDB pretty printing ImportError: No module named 'printers' - python

I'm trying to add pretty printing for STL in my GDB on Ubuntu 14.04. Some details on the tools:
OS: Ubuntu 14.04
gdb version: 7.7
python version: 2.7.6
python3 version: 3.4.0
But after I setup exactly as what the instruction said. I still get the following errors:
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6/__init__.py", line 19, in <module>
from printers import register_libstdcxx_printers
ImportError: No module named 'printers'
/home/jerry/.gdbinit:6: Error in sourced command file:
Error while executing Python code.
Reading symbols from main...done.
Then I haved double checked my pretty printing installation directory. Under the directory /home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6/, I can clearly see I have the printers.py file. And I also view the content of printers.py, I'm sure it also has the register_libstdcxx_printers class. Why the python interpreter is still complaining the printers module is missing? This seems really strange to me.

I just tried something myself, and luckily, now it's working. At least it can print out the map and vector content as expected. Here is what I did:
Since it's complaining that it can't find the printer.py module, then I think should probably I tell python interpreter where this file is located. So I first added this extra line to my ~/.gdbinit:
sys.path.append("/home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6")
(After the line sys.path.insert(0, '/home/jerry/myLib/gdb_stl_support/python') )
Then running gdb again, I got the following error:
Traceback (most recent call last):
File "<string>", line 5, in <module>
File "/home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6/printers.py", line 1247, in register_libstdcxx_printers
gdb.printing.register_pretty_printer(obj, libstdcxx_printer)
File "/usr/share/gdb/python/gdb/printing.py", line 146, in register_pretty_printer
printer.name)
RuntimeError: pretty-printer already registered: libstdc++-v6
/home/jerry/.gdbinit:7: Error in sourced command file:
Error while executing Python code.
Given the error information, I edited the ~/.gdbinit file and commented the line register_libstdcxx_printers (None).
And then after running gdb, it works.
But I'm still wondering if directory in sys.path is searched recursively? I mean in my mind, the python interpreter should work like this: once you have added one directory to sys.path, then the subdirectory under that directory will also get searched for a module file.

Related

importerror no module named caches

I'm trying to run simulation by using gem5 on ubuntu 16.04 lts
and I write code './build/X86/gem5.opt ./configs/tutorial/two_level.py'.
The output on terminal was:
Traceback(most recent call last):
File "<string>", line 1, in <module>
File "home/park/gem5/src/python/m5/main.py", line 433, in main
exec filecode in scope
File "./configs/tutorial/two_level.py", line 3, in <module>
from caches import*
ImportError: No module named caches
I tried everything I can, but couldn't know. What is the problem?
The file:
configs/tutorial/two_level.py
has never been part of the main tree according to:
git log -p -- '**/two_level.py'
so you must provide its source.
Supposing you are talking about configs/learning_gem5/part1/two_level.py, the problem is not reproducible on master at da79d6c6cde0fbe5473ce868c9be4771160a003b with the command:
./build/X86/gem5.opt configs/learning_gem5/part1/two_level.py
which appears to run correctly.

Getting error message when attempting to use python-magic to identify file types on windows

I am new to Python with some knowledge of C++. I am getting the following error message when trying to set up python-magic to identify file types. I have already installed python-magic and libmagic using pip. As soon as I try to import magic I get the error message prompting me to check my installation.
Error message:
# python
>>> import magic
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import magic
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 173, in <module>
raise ImportError('failed to find libmagic. Check your installation')
ImportError: failed to find libmagic. Check your installation
>>>
Thanks guys, now I am able to import magic, but I am getting another error message when I try to type magic.from_file("userinput.py") after placing the magic1.dll and libgnurx-0.dll files into my
C:\Windows\System32 folder. Error message follows:
# python
>>> import magic
>>> magic.from_file("userinput.py")
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
magic.from_file("userinput.py")
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 130, in from_file
m = _get_magic_type(mime)
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 118, in _get_magic_type
i = _instances[mime] = Magic(mime=mime)
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 67, in __init__
magic_load(self.cookie, magic_file)
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 256, in magic_load
return _magic_load(cookie, coerce_filename(filename))
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 187, in errorcheck_negative_one
raise MagicException(err)
magic.MagicException
>>>
I think the problem is I am having trouble passing the location of magic.mgc using the following pseudo command: file_magic = magic.Magic(magic_file="c:path\to\magic.mgc")
Any further help would be greatly appreciated. Thank you all.
It sounds like you don't have the proper dependencies set up. Have you followed the installation instructions from the github page?
"On Windows, copy magic1.dll, regex2.dll, and zlib1.dll onto your PATH from the Binaries and Dependencies zipfiles provided by the File for Windows project. You will need to copy the file magic out of [binary-zip]\share\misc, and pass it's location to Magic(magic_file=...). If you are using a 64-bit build of python, you'll need 64-bit libmagic binaries which can be found here: https://github.com/pidydx/libmagicwin64 (note: untested)"
From https://github.com/ahupp/python-magic#dependencies:
Dependencies
On Windows, copy magic1.dll, regex2.dll, and zlib1.dll onto your PATH from the Binaries and Dependencies zipfiles provided by the File for Windows project. You will need to copy the file magic out of [binary-zip]\share\misc, and pass it's location to Magic(magic_file=...). If you are using a 64-bit build of python, you'll need 64-bit libmagic binaries which can be found here: https://github.com/pidydx/libmagicwin64 (note: untested)

Can no Longer open Spyder IDE for Python Programming

I installed Python 3.4 on my Windows 7 laptop several months ago as part of Anaconda (https://www.continuum.io/downloads). My installation included the Spyder IDE, and I have successfully been using Spyder for Python programming.
However, since yesterday, I have been unable to open Spyder. I typically open Spyder via the Start Menu, but now, when I try to click on the Spyder icon in the Start Menu, I get no response. I then tried to go directly to the spyder.exe file in the Scripts folder in the directory where Anaconda is installed. When I clicked on this the first time, the following message flashed quickly and then disappeared:
Traceback (most recent call last):
File "C:\Users\Aniket\Anaconda3\Scripts\spyder-script.py". line 2, in <module>
start_app.main()
File "C:\Users\Aniket\Anaconda3\lib\site-packages\spyderlib\start_app.py", line 114, in main
from spyderlib import spyder
File "C:\Users\Aniket\Anaconda3\lib\site-packages\spyderlib\spyder.py", line 100 in <module>
File "C:\Users\Aniket\Anaconda3\lib\site-packages\spyderlib\qt\QtSvg.py", line 10 in <module>
from PyQt4.QtSvg import * # analysis:ignore
ImportError:DLL load failed: The specified module could not be found
I double-clicked on Spyder.exe a second time, and this time, received the following message:
kfile.py", line 146 in lock
symlinke(str(os.getpid()), self.name)
File "C:\Users\Aniket\Anaconda3\lib\site-packages\spyderlib\utils\external\lockfile.py", line 87, in symlink
os.rmdir(newlinkname)
OSError: [WinError 145] The directory is not empty: 'C:\\Users\\Aniket\\.spyder2-py3\\spyder.lock.1459432906109.newlink'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Aniket\Anaconda3\Scripts\spyder-script.py". line 2, in <module>
start_app.main()
File "C:\Users\Aniket\Anaconda3\lib\site-packages\spyderlib\start_app.py", line 106, in main
from spyderlib import spyder
File "C:\Users\Aniket\Anaconda3\lib\site-packages\spyderlib\spyder.py", line 100 in <module>
File "C:\Users\Aniket\Anaconda3\lib\site-packages\spyderlib\qt\QtSvg.py", line 10 in <module>
from PyQt4.QtSvg import * # analysis:ignore
ImportError:DLL load failed: The specified module could not be found
Both of these messages flashed very quickly and then disappeared - I captured them by quickly pressing Print Screen when they appeared. It's not evident to me what the error messages imply, nor what would have caused this. It's possible that I closed Spyder while some function was running, or that Spyder crashed and caused some persistent error. Does anyone know how I can fix this?
I had a similar problem of Spyder 2 not starting. My installation is part of Anaconda, on Win7 64-bit OS. I tried all the solutions outlined here and here, but they did not work for me. From the command line, I got the following error(s) when trying to reset spyder:
U:\>python -c "from spyderlib.spyder import main; main()" --reset
Traceback (most recent call last):
File "C:\Temp\pApps\Anaconda3\lib\site-packages\spyderlib\qt\__init__.py", line 48, in <module> from PySide import __version__ # analysis:ignore
ImportError: No module named 'PySide'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Temp\pApps\Anaconda3\lib\site-packages\spyderlib\requirements.py", line 40, in check_qt from spyderlib import qt File "C:\Temp\pApps\Anaconda3\lib\site-packages\spyderlib\qt\__init__.py", line 50, in <module>
raise ImportError("Spyder requires PySide or PyQt to be installed")
ImportError: Spyder requires PySide or PyQt to be installed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Temp\pApps\Anaconda3\lib\site-packages\spyderlib\spyder.py", line 48, in <module> requirements.check_qt()
File "C:\Temp\pApps\Anaconda3\lib\site-packages\spyderlib\requirements.py", line 50, in check_qt % (qt_infos['pyqt']+qt_infos['pyside']))
File "C:\Temp\pApps\Anaconda3\lib\site-packages\spyderlib\requirements.py", line 25, in show_warning
raise RuntimeError(message)
RuntimeError: Please check Spyder installation requirements:
PyQt4 4.6+ (or PySide 1.2.0+) is required.
What surprised me was that spyder worked fine till yesterday, and I just did a full update yesterday as follows:
conda update --all
So I again updated spyder today with the following:
conda update spyder
And the following package plan was presented to me:
The following packages will be UPDATED:
spyder: 2.3.7-py35_3 None://None/<unknown> --> 2.3.8-py35_1
spyder-app: 2.3.7-py35_0 --> 2.3.8-py35_0
The following packages will be DOWNGRADED due to dependency conflicts:
matplotlib: 1.5.3-np111py35_1 --> 1.5.1-np111py35_0
pyqt: 5.6.0-py35_0 --> 4.11.4-py35_7
qt: 5.6.0-vc14_0 [vc14] --> 4.8.7-vc14_9
[vc14]
qtconsole: 4.2.1-py35_2 --> 4.2.1-py35_0
After the update, spyder works fine now.
In essence, my problem was due to dependency conflicts.
I ran into the same issue. The following worked for me
Please close Spyder IDE, in Anaconda Prompt run
conda update spyder
then
spyder --reset
Restart Spyder
Had the same exact problem as you a few days ago and reinstalling won't work so I went to:
C:\Users\'YourName'\\.spyder2-py3
delete every spyder, lock file/folder in it and relaunch.
I know this is an old thread but having just had the same problem an answer that worked for me from https://github.com/spyder-ide/spyder/issues/3005
My problem appeared to be that the status of spyder was still running so wouldn't open. To fix this you need to look for a directory called .spyder2 in your Users\ directory, then find a file called spyder.lock and remove it.
My solution:
I uninstalled Anaconda spyder
Removed all directories of it from
c: programs/
and c:users/Username/
and c:users/username/AppData/local
and c:users/username/AppData/
I downloaded a newer version of Anaconda Spyder and installed it.
It's all fine now.
You might get additional information if you run
from spyder.app import start
start.main()
as a python script. For example I got following output:
Traceback (most recent call last):
File "C:\python_env\workspace\TechDiff\src\demo.py", line 1, in <module>
from spyder.app import start
File "C:\python_env\App\WinPython\python-3.10.1.amd64\lib\site-packages\spyder\app\start.py", line 24, in <module>
from spyder.config.base import get_conf_path, running_in_mac_app
File "C:\python_env\App\WinPython\python-3.10.1.amd64\lib\site-packages\spyder\config\base.py", line 25, in <module>
from spyder.utils import encoding
File "C:\python_env\App\WinPython\python-3.10.1.amd64\lib\site-packages\spyder\utils\encoding.py", line 23, in <module>
from spyder.py3compat import (is_string, to_text_string, is_binary_string,
File "C:\python_env\App\WinPython\python-3.10.1.amd64\lib\site-packages\spyder\py3compat.py", line 77, in <module>
from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections' (C:\python_env\App\WinPython\python-3.10.1.amd64\lib\collections\__init__.py)
=> Maybe for Python 3.10 the import of collections needs to be fixed.
=> Try to use 3.9
I've got exactly the same error messages before, and I fixed it by installing spyder again under anaconda:
conda install spyder
Well it says it is missing PyQt4.dll, which you can check by: searching pyqt4 in your anaconda3 directory.
There are several possibilities:
it is still in: ~\Anaconda3_x86\Library\plugins\designer
That would mean python can't find since it ain't searching in this directory, I highly doubt that possiblity, since that would mean you'd have tweaked some code.
it ain't anywhere
Maybe you or more likely one of your programs did deleted it per accident?
it isnt in: ~\Anaconda3_x86\Library\plugins\designer
I also doubt this possibilty since it would mean the file has been moved...
However you can fix that by reinstalling spyder as mentioned by xuwei.

Cygwin gives error using python

I want to execute below command but cygwin gives the error.
Please help me.
Python makeReadingsFile.py eichstaett.net.xml test.readings.xml
Traceback (most recent call last):
File "makeReadingsFile.py", line 75, in <module>
import argparse
ImportError: No module named argparse
As noted, the error message
$ Python makeReadingsFile.py eichstaett.net.xml test.readings.xml
Python: can't open file 'makeReadingsFile.py': [Errno 2] No such file or directory
occurs because there's no such file where you're telling it to look for one. Your second command looks to my eyes just like the first command:
Python makeReadingsFile.py eichstaett.net.xml test.readings.xml
Traceback (most recent call last):
File "makeReadingsFile.py", line 75, in <module>
import argparse
ImportError: No module named argparse
and you say that this is using the full address path, but since the given path is the same I think you must mean something like "when you change to the right directory". Anyway, the error message here is probably due to the fact you're using Python 2.6 or before: the argparse module was only introduced in Python 2.7.

ImportError when trying to run a python unittest with pydev

I am getting the following error when trying to run a module as a python unittest with PyDev.
Finding files...
['C:\\Projectos\\spa\\sensor\\src\\test\\test_sensor.py'] ... done
Importing test modules ... Traceback (most recent call last):
File "C:\eclipse\plugins\org.python.pydev.debug_1.6.3.2010100513\pysrc\runfiles.py", line 342, in __get_module_from_str
mod = __import__(modname)
ImportError: No module named :\Projectos\spa\sensor\src\test\test_sensor
ERROR: Module: :\Projectos\spa\sensor\src\test\test_sensor could not be imported.
done.
I noticed the path in the ERROR: Module: line starts with ":\" but I don't know what's causing it.
Any ideas?
Thank you.
Turns out pydev does not play well with cygwin's python.
Installed python 2.7 for windows and it works.

Categories

Resources