Comments (12)
I'll add that I'm working on adding the ability to install pyBigWig without curl. This seems to be working in libBigWig already.
from pybigwig.
Possibly, though it'll be rather non-trivial.
@fidelram: How are we handling this on RTD in deepTools? I know pyBigWig is a mock module in conf.py
there, so does it just not get installed?
from pybigwig.
The general strategy to avoid installing dependencies on RTD is as follows:
- Put a separate
requirements.txt
in yourdocs/
folder (or elsewhere) and have RTD use that. Leave out most/all dependencies. - Add the following to your
conf.py
:
import sys
import mock
MOCK_MODULES = ['pyBigWig']
for mod_name in MOCK_MODULES:
sys.modules[mod_name] = mock.Mock()
You then won't need pyBigWig installed.
from pybigwig.
Thanks a bunch @dpryan79 we'll mock out PyBigWig for now.
from pybigwig.
This is related to separating out lib curl so I will post this here.
I am having problems using pybigwig on mac os 10.11.6. Importing pybigwig I get
import pyBigWig
ImportError: dlopen(/Users/kosborn/Documents/dev/env/mar2/lib/python2.7/site-packages/pyBigWig.so, 2): Library not loaded: @rpath/libcurl.4.dylib
Referenced from: /Users/kosborn/Documents/dev/env/mar2/lib/python2.7/site-packages/pyBigWig.so
Reason: Incompatible library version: pyBigWig.so requires version 9.0.0 or later, but libcurl.4.dylib provides version 7.0.0
but when I try to use brew to upgrade curl I get:
==> Pouring curl-7.53.1.el_capitan.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.
macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have this software first in your PATH run:
echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.bash_profile
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/curl/lib
CPPFLAGS: -I/usr/local/opt/curl/include
For pkg-config to find this software you may need to set:
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig
==> Summary
🍺 /usr/local/Cellar/curl/7.53.1: 390 files, 2.7MB
I tried changing my bin path but I still get the same error when trying to import.
from pybigwig.
@kozbo: You must have multiple versions of curl installed. What does curl-config --libs
report?
from pybigwig.
I wouldn't be surprised @dpryan79, I have been trying a lot of different things to solve this.
curl-config --libs
reports
-L/Users/kosborn/anaconda3/lib -lcurl -lssl -lcrypto -lssl -lcrypto -lz
from pybigwig.
Version 0.3.4 now supports installation without libcurl (if curl-config
isn't found).
from pybigwig.
version 0.3.11 still does not install without libcurl
Using cached https://files.pythonhosted.org/packages/7b/b7/e135efa69cd146d22920c196e4575d2ff5a0b19c8f3a29634f5b4c639764/pyBigWig-0.3.11.tar.gz
Requirement already satisfied: wrapt in /home/shouldsee/.local/lib/python2.7/site-packages
Requirement already satisfied: decorator in /home/shouldsee/.local/lib/python2.7/site-packages
Building wheels for collected packages: pyBigWig
Running setup.py bdist_wheel for pyBigWig ... error
Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-zaQi3V/pyBigWig/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/tmpEQaxyhpip-wheel- --python-tag cp27:
Either libcurl isn't installed, it didn't come with curl-config, or curl-config isn't in your $PATH. pyBigWig will be installed without support for remote files.
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'classifier'
warnings.warn(msg)
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/pyBigWigTest
copying pyBigWigTest/__init__.py -> build/lib.linux-x86_64-2.7/pyBigWigTest
copying pyBigWigTest/test.py -> build/lib.linux-x86_64-2.7/pyBigWigTest
running egg_info
writing requirements to pyBigWig.egg-info/requires.txt
writing pyBigWig.egg-info/PKG-INFO
writing top-level names to pyBigWig.egg-info/top_level.txt
writing dependency_links to pyBigWig.egg-info/dependency_links.txt
reading manifest file 'pyBigWig.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pyBigWig.egg-info/SOURCES.txt'
copying pyBigWigTest/test.bigBed -> build/lib.linux-x86_64-2.7/pyBigWigTest
copying pyBigWigTest/test.bw -> build/lib.linux-x86_64-2.7/pyBigWigTest
running build_ext
building 'pyBigWig' extension
C compiler: x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/libBigWig
compile options: '-DNOCURL -DWITHNUMPY -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -IlibBigWig -I/usr/include/python2.7 -I/home/shouldsee/.local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c'
x86_64-linux-gnu-gcc: libBigWig/io.c
x86_64-linux-gnu-gcc: libBigWig/bwWrite.c
x86_64-linux-gnu-gcc: libBigWig/bwRead.c
x86_64-linux-gnu-gcc: pyBigWig.c
x86_64-linux-gnu-gcc: libBigWig/bwStats.c
x86_64-linux-gnu-gcc: libBigWig/bwValues.c
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/libBigWig/bwRead.o build/temp.linux-x86_64-2.7/libBigWig/bwStats.o build/temp.linux-x86_64-2.7/libBigWig/io.o build/temp.linux-x86_64-2.7/libBigWig/bwValues.o build/temp.linux-x86_64-2.7/libBigWig/bwWrite.o build/temp.linux-x86_64-2.7/pyBigWig.o -L/home/shouldsee/.local/lib/python2.7/site-packages/numpy/core/lib -L/usr/lib/python2.7/config-x86_64-linux-gnu -lm -lz -lcurl -lpython2.7 -lnpymath -lm -o build/lib.linux-x86_64-2.7/pyBigWig.so
/usr/bin/ld: cannot find -lcurl
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot find -lcurl
collect2: error: ld returned 1 exit status
from pybigwig.
@shouldsee Can you try the "no_libcurl" branch from github? If that works I can make a new release.
from pybigwig.
@dpryan79 Worked like a charm 👍
Installed /home/believerx/.local/lib/python2.7/site-packages/pyBigWig-0.3.11-py2.7-linux-x86_64.egg
Processing dependencies for pyBigWig==0.3.11
Finished processing dependencies for pyBigWig==0.3.11
from pybigwig.
Great, thanks for the quick response! I'll merge this in and push out a new release after I get #66 merged in.
from pybigwig.
Related Issues (20)
- RuntimeError: Invalid interval bounds
- Document performance considerations? HOT 4
- Cannot add entries of value type int, but only float HOT 2
- support for osx-arm64 HOT 2
- numpy support broken in 0.3.18? HOT 1
- Create a BedGraph file using addEntries() throws segmentation fault HOT 2
- library import error HOT 4
- pyBigWig fails to find numpy installation when installing from PyPI HOT 5
- Writing a nan value should leave a gap HOT 7
- Can't enforce numpy features when pyBigWig is used as a dependency in downstream package HOT 5
- pip installation broken HOT 4
- Installing through pip not working HOT 9
- addHeader does not support multiple calls HOT 1
- Support for python >=3.11 HOT 1
- Issue Downloading pyBigWig HOT 1
- Simple patch to resolve conflict with roundup() macro
- Stats Sum Not Working as Expected
- 'zsh: segmentation fault ' HOT 1
- Out of memory listing entries on one human chromosome on a machine with 300 GB ram and 165 GB BigBed file HOT 1
- pyBigWig.entries() should return empty array, not None when no entries are found
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pybigwig.