undefined symbol: PyUnicodeUCS2_Decode whilst trying to install psycopg2 - python

I'm getting an error whilst trying to install psycopg2 on ubuntu 9.10 64 bit.
The error is:
>>> import psycopg2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "psycopg2/__init__.py", line 69, in <module>
from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: psycopg2/_psycopg.so: undefined symbol: PyUnicodeUCS2_Decode
I've tried downloading the package from http://initd.org/pub/software/psycopg/ and installing it. I've tried by using easy_install too.
No error during the installation.
It's quite weird as my python (2.6.2) has been compiled with UCS4 and so the installation should just work without problems.
Any help would be appreciated.
Cheers

fixed it.
I had to recompile python with --enable-unicode=ucs4.
Still not clear why as the default version on ubuntu uses ucs4.

Like you say, your Python has been built UCS4. But the psycopg2 you're trying to install has been built against a Python built UCS2. Find one or build one against UCS4.

I had the same error when importing bx.intervals from bx-python:
undefined symbol: PyUnicodeUCS2_Decode
However, the python version I was using was already compiled with ucs4. Apparently, bx-python was built against a python version that was compiled with ucs2. So I had to recompile python in the opposite way described by the OP: ./configure --enable-unicode=ucs2.

In my case, using bash shell I had no issue and with csh faced this issue. Realized have multiple version of python installed. one defaulting in /usr/local/bin worked vs one in /bin exhibited the issue. Point being before you think you need to recompile with admin help check if you have any alternate version of python installed.

Related

ModuleNotFoundError, even after pip install

I have recently bought a new laptop and was viewing some python projects of mine which I made on my pc. For one of them I use the python-bitvavo-api library which I installed using pip3 install python-bitvavo-api. The version I installed is 1.2.2 which is the latest on their website.
Now when I try to import it using this code: from python_bitvavo_api.bitvavo import Bitvavo, I get the following error:
Traceback (most recent call last):
File "C:\Users\indig\OneDrive\Documenten\Python Projects\Personal\Cryptone\Cryptone.py", line 6, in <module>
from python_bitvavo_api.bitvavo import Bitvavo
ModuleNotFoundError: No module named 'python_bitvavo_api'
I read online that it may occur when using multiple python versions, Im only using 1 and thats python 3.7
Btw. I have the same error with the Pillow module, so it might be a setting in visual studio that I dont know of. Anyway, someone please help. If you need more details please ask.
How are you running it? From the terminal or from VS?
You can also check the installed libraries running the command pip list

cv2.dnn' has no attribute 'readNet' using python 3.6 and opencv3.4.1

I have downloaded the source code of Opencv3.4.1 from github and I have built it from the source using CMake. Everything went very well and it's installed!
But When I run this script: https://github.com/opencv/opencv/blob/master/samples/dnn/object_detection.py
I get the following error:
Traceback (most recent call last):
File "object_detection.py", line 52, in <module>
net = cv.dnn.readNet(args.model, args.config, args.framework)
AttributeError: module 'cv2.dnn' has no attribute 'readNet'
System information (version)
OpenCV => 3.4.1
Operating System / Platform => Windows 64 Bit
Python =>3.6
When I run print(cv.__version__) I get 3.4.1 But I can't find the that function or any other new features in the 3.4.1 version!
I have built from the source on Ubuntu 16.04 and on Windows 10. But still no luck! the source is downloaded from Github https://github.com/opencv/opencv/archive/3.4.1.zip
Does anyone has any tips?
Thanks to api55 for his suggestion!
I could solve the problem by downloading the source code from the current master branche of opencv https://github.com/opencv/opencv
change readNet function with readNetFromDarknet
nb : if you have the failure no attribute named RedNetFromDarknet , this is because this function is implemented in opencv_3.3.1 and greater versions.
for my case it have the same problem with opencv_3.3.0 and i noticed that this function is not implemented in this version. That's why you should check if the version you are using contain this function.
I got this problem too because I had an old version of Opencv (3.x). So, I tried pip uninstall opencv-python then pip install opencv-python and now I have the newest one (4.x) and cv2.dnn.readNet is now recognized.

Difficulty installing combinatorics module on Mac OSX

I attempted to run the program that plays mastermind, here:
http://www.python-course.eu/mastermind.php
To do so, I installed python3.4.3 first.
I ran the program, but it returned:
Traceback (most recent call last):
File "mastermind_p1_trim.py", line 5, in <module>
from combinatorics import all_colours
ImportError: No module named 'combinatorics'
So I navigated to https://pypi.python.org/pypi/Combinatorics
and downloaded it, then ran python3
python3 setup.py install
from within the Directory downloaded.
This returned
Writing /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Combinatorics-1.4.5-py3.4.egg-info
finally, sys.path returns
['', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python34.zip', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages']
when running python3.
So, I do not know why I am still receiving the error,
ImportError: No module named 'combinatorics'
I have looked at other similar pages on SO, but the suggestions there do not seems to solve my problem. Could anyone help me figure this out?
Combinatorics might not be compatible with Python 3.4.3
Here are some suggestions:
Un-install Python 3.4.3 and all it's resources
Install python 2.7
Install combinatorics
Read more in detail
Here is a guide from ActiveState:
Download and install ActivePython
[IGNORE THIS] Buy and install the Business Edition license from account.activestate.com
Open Command Prompt
Type pypm install combinatorics

Conflicting versions of python in ubuntu

So i had python 2.7.2 on my server and i needed to update it to python 2.7.3. So i've tried to remove the 2.7.2 version and then install the new one using the sources. I wasn't able to remove the 2.7.2 version cause the system uses it to run crucial services on server, so i installed the 2.7.3 version in hope that after that i would be able to remove the old version. Still i cant remove the old version, although i'm able to execute the python 2.7.3 when i install any module i cant import it. I added the path to sys.path and i started finding the module but importing it causes another errors.
My python executes the /usr/local/bin/python which is the 2.7.3 version where the problems are.
If i try to execute python like this /usr/bin/python it executes the old version and everything works fine there, i can import the new installed modules.
So what can i do to make python 2.7.3 work?
I've searched a lot of tutorials and tried things like add the library in .pth files on python and i started finding the modules but when importing it i get errors like this:
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
import add_newdocs
File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
from numpy.lib import add_newdoc
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
from type_check import *
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
import numpy.core.numeric as _nx
File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
import multiarray
ImportError: /usr/local/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS4_AsUnicodeEscapeString
Thanks for the help
EDIT PROBLEM SOLvED
So to solve the missing import modules i created a .pth file under /usr/local/lib/python2.7/site-packages/ with the directories where the python modules are and the python starts to find them.
To fix the comptability problems you can install python from sources and specify the unicode doing ./configure --enable-unicode
more information here
Do not EVER mess with system python, EVER.
What you should do is install python 2.7.3 with a --prefix into your home directory, then use virtualenv -p /home/myuser/path/to/python.
In any case, using virtualenv to run your own application is almost always a good idea, as it avoids polluting the system package directories with libraries you use in your own applications.
It looks like the modules you've installed were built against your old version of Python, or at least a version incompatible with your newer installation. The import error you're seeing at the bottom is the numpy module searching for a symbol that is not in your build of 2.7.3. There is further information here.
If possible, it's usually way easier to upgrade Python with a package manager. That way, if anything on your system depends on Python, but does not need exactly 2.7.2, then Python can be easily upgraded without disturbing anything. I'm guessing that either your server doesn't have a newer version of Python available and you can't add new repositories, or you don't have access to a package manager. If using packages is possible, I would go ahead and remove what you've built from source (the command should be 'make clean' if Python uses GNU Make).
If that isn't an option, then there should be a way to compile Python, but not install it into system directories. Then you could add a symlink for users, and make sure that symlink has precedence in their path.
When installing python use the following steps
using prefix to specify the installation directory
./configure --prefix=/usr/bin/python
make
make install
Then everytime u run a new Terminal u have specify
export PATH="$PATH:/usr/bin/"
to tell where is the installation directory of Python
This way u can use any number of pythons
You can install python libs from R. It works for me.
For example, to install numpy library from R type:
system('python -m pip install -U numpy')

greenlet in Win 7: DLL failed: the specified procedure could not be found

I'm running into an ImportError while trying to implement some distributed computing code using the Python SCOOP library. One of SCOOP's dependencies is greenlet, which I installed (via cygwin) using easy_install greenlet. When attempting to import this module I receive the following error:
>>> import greenlet
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified procedure could not be found.
>>>
I've tried modifying my path to include the directory containing greenlet.pyd but the module still is not imported successfully. After opening greenlet.pyd in DependencyWalker I found 10 separate .dll's that could not be found by my system. Does anyone have experience working around this issue? Downloading 10 .dll's is rather cumbersome and I'm concerned I'm not doing something correctly on the front-end.
I'm using Python 2.7.3 32 bit on a Windows 7 64 bit machine. Any help is greatly appreciated -- thanks in advance.
Installing Python 2.7.5 solved this problem for me.
I upgraded to 2.7.5 and it worked. Any ideas why?

Categories

Resources