I am installing Prodigy on a fresh RHEL (release 7.4) without SUDO privileges (i.e. I cannot install gcc via
sudo yum install “Development Tools”
Thus, I installed the latest Miniconda3 along with:
conda install gxx_linux-64
followed by:
export CC=/app/home/miniconda3/bin/x86_64-conda_cos6-linux-gnu-gcc export CXX=/app/home/miniconda3/bin/x86_64-conda_cos6-linux-gnu-g++ alias gcc=$CC alias g++=$CXX pip install prodigy-1.4.2-cp35.cp36-cp35m.cp36m-linux_x86_64.whl
This results in the following installation errors:
Building wheels for collected packages: ujson, hug, spacy, peewee, murmurhash, cymem, preshed, regex, cytoolz
Running setup.py bdist_wheel for ujson ... error
Complete output from command /app/home/miniconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ukqbyklx/ujson/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-hxes_2z8 --python-tag cp36:
running bdist_wheel
running build
running build_ext
building 'ujson' extension
creating build
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/python
creating build/temp.linux-x86_64-3.6/lib
/app/home/miniconda3/bin/x86_64-conda_cos6-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./python -I./lib -I/app/home/miniconda3/include/python3.6m -c ./python/ujson.c -o build/temp.linux-x86_64-3.6/./python/ujson.o -D_GNU_SOURCE
/app/home/miniconda3/bin/x86_64-conda_cos6-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./python -I./lib -I/app/home/miniconda3/include/python3.6m -c ./python/objToJSON.c -o build/temp.linux-x86_64-3.6/./python/objToJSON.o -D_GNU_SOURCE
/app/home/miniconda3/bin/x86_64-conda_cos6-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./python -I./lib -I/app/home/miniconda3/include/python3.6m -c ./python/JSONtoObj.c -o build/temp.linux-x86_64-3.6/./python/JSONtoObj.o -D_GNU_SOURCE
/app/home/miniconda3/bin/x86_64-conda_cos6-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./python -I./lib -I/app/home/miniconda3/include/python3.6m -c ./lib/ultrajsonenc.c -o build/temp.linux-x86_64-3.6/./lib/ultrajsonenc.o -D_GNU_SOURCE
./lib/ultrajsonenc.c:156:23: warning: 'g_hexChars' is static but used in inline function 'Buffer_AppendShortHexUnchecked' which is not static
*(outputOffset++) = g_hexChars[(value & 0x000f) >> 0];
^~~~~~~~~~
./lib/ultrajsonenc.c:155:23: warning: 'g_hexChars' is static but used in inline function 'Buffer_AppendShortHexUnchecked' which is not static
*(outputOffset++) = g_hexChars[(value & 0x00f0) >> 4];
^~~~~~~~~~
./lib/ultrajsonenc.c:154:23: warning: 'g_hexChars' is static but used in inline function 'Buffer_AppendShortHexUnchecked' which is not static
*(outputOffset++) = g_hexChars[(value & 0x0f00) >> 8];
^~~~~~~~~~
./lib/ultrajsonenc.c:153:23: warning: 'g_hexChars' is static but used in inline function 'Buffer_AppendShortHexUnchecked' which is not static
*(outputOffset++) = g_hexChars[(value & 0xf000) >> 12];
^~~~~~~~~~
/app/home/miniconda3/bin/x86_64-conda_cos6-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./python -I./lib -I/app/home/miniconda3/include/python3.6m -c ./lib/ultrajsondec.c -o build/temp.linux-x86_64-3.6/./lib/ultrajsondec.o -D_GNU_SOURCE
creating build/lib.linux-x86_64-3.6
gcc -pthread -shared -B /app/home/miniconda3/compiler_compat -L/app/home/miniconda3/lib -Wl,-rpath=/app/home/miniconda3/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/./python/ujson.o build/temp.linux-x86_64-3.6/./python/objToJSON.o build/temp.linux-x86_64-3.6/./python/JSONtoObj.o build/temp.linux-x86_64-3.6/./lib/ultrajsonenc.o build/temp.linux-x86_64-3.6/./lib/ultrajsondec.o -o build/lib.linux-x86_64-3.6/ujson.cpython-36m-x86_64-linux-gnu.so
unable to execute 'gcc': No such file or directory
error: command 'gcc' failed with exit status 1
----------------------------------------
Failed building wheel for ujson
Running setup.py clean for ujson
So, in some places it picks up gcc from the right alias and then, where it fails, it can’t seem to find the alias to gcc. This is very perplexing as wheels are new to me.
UPDATE
Turns out, all that was necessary (after installing gxx_linux-64 with conda) was:
source activate root pip install prodigy-1.4.2-cp35.cp36-cp35m.cp36m-linux_x86_64.whl
The former command sets up all of the necessary environment variables (see conda docs) and then the wheel installation executed with any problems!
