Comments (9)
Now that #178 is merged, I will focus on this.
from cellrank.
Hi, @flying-sheep,
I'm struggling to put CellRank on testpypi
, the main culprit being here: https://github.com/theislab/cellrank/blob/master/setup.py#L42
The problem is this: HTTPError: 400 Client Error: Invalid value for requires_dist. Error: Can't have direct dependency: 'msmtools @ git+git://github.com/msmdev/msmtools@krylov_schur#egg=msmtools' for url: https://test.pypi.org/legacy/
This problem occures when I build bdist_wheel
. If I only build sdist
, it gets uploaded.
However, after running pip install -i https://test.pypi.org/simple/ cellrank==1.2.3.dev2
,
I get the following error and I don't know how to fix it:
Installing build dependencies ... error
ERROR: Command errored out with exit status 1:
command: /home/michal/.miniconda3/envs/cellrank/bin/python /home/michal/.miniconda3/envs/cellrank/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-ant09w4q/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://test.pypi.org/simple/ -- setuptools setuptools_scm wheel
cwd: None
Complete output (3 lines):
Looking in indexes: https://test.pypi.org/simple/
ERROR: Could not find a version that satisfies the requirement setuptools (from versions: none)
ERROR: No matching distribution found for setuptools
----------------------------------------
ERROR: Command errored out with exit status 1: /home/michal/.miniconda3/envs/cellrank/bin/python /home/michal/.miniconda3/envs/cellrank/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-ant09w4q/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://test.pypi.org/simple/ -- setuptools setuptools_scm wheel Check the logs for full command output.
Here's the full log.
Based on this, I'm not sure if it's even possible to specify dependency that way.
As far as I know, dependency_links
could've worked (haven't tried them, they were deprecated).
Other thing I tried is using cmdclass
in setup.py
, calling pip install <the package>
, similar to this, but it always fails with not being able to find pip:
Traceback (most recent call last):
File "/home/michal/.miniconda3/envs/cellrank/bin/pip", line 7, in <module>
from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip'
Any help on this would be greatly appreciated!
from cellrank.
In the meantime, I would vote for putting it on pypi without the msmtools dependency, include msmtools it in the installation instructions and initiate a merge of the krylov-schur branch into upstream msmtools.
from cellrank.
We could even let functions/methods default to CFLARE if no msmtools is found and print a message, urging the user to install msmtools...
from cellrank.
@flying-sheep, can you help us with this?
from cellrank.
The reason one can’t have URLs as dependencies is explained in pypa/pip#6301.
One option to solve this is to vendorize it, i.e. bundle the dependency with your package. One advantage is that other packages can depend on the regular version of msmtools while only you see and import from the version you need. This tool could help, I think it’s able to resolve and install from an URL since it uses pip.
The way it works is that you use the CLI command python-vendorize
to install the package to a local (git-ignored) directory, and include that directory when building a package for PyPI.
I suggest you use an URL with a commit hash instead of the branch name in the URL. This way when building a package, you always get the same version and not whatever is the newest one at build time.
from cellrank.
@flying-sheep Thanks a lot!
That's what I was afraid of - bundling stuff together, but if it's the only solution, then so be it. There were some issues with docs + tests, but #225 should make it work.
from cellrank.
Done via #225 and later commit. Will create separate issue for Anaconda.
from cellrank.
Amazing, thanks so much.
from cellrank.
Related Issues (20)
- Custom gene order for heatmap
- AttributeError GPCCA compute_microstates HOT 4
- Fix linting
- cr.pl.gene_trends() gives empty plots HOT 3
- `g.plot_fate_probabilities` fails for `same_plot=False` HOT 1
- Update documentation to include CellRank 2 preprint
- Inconsistent `time_key` types between `RealTimeKernel.from_moscot()` and `TemporalProblem.prepare()` HOT 2
- AttributeError with cr.pl.gene.trends HOT 3
- Pseudotime differences HOT 2
- estimators.GPCCA.plot_macrostates() gives error for legend plotting HOT 7
- AttributeError: 'GPCCA' object has no attribute 'compute_fate_probabilities' HOT 2
- vk has no attribute plot_projection? HOT 7
- vk.plot_projection(): KeyError: "Unable to find a basis in `adata.obsm['X_umap']` or `adata.obsm['umap']`." HOT 2
- Estimating Fate Probabilities and Driver Genes----Uncover driver genes: RuntimeError: No stationary distribution found in `.eigendecomposition['stationary_dist']`. HOT 4
- AttributeError: 'NoneType' object has no attribute 'compute_transition_matrix' HOT 5
- Identify states -> I get ValueError: Sparse implementation is only available for `method='krylov'`. HOT 3
- How to delete gridlines in figures HOT 2
- Request for Intestinal organoid dataset(scEU-seq) HOT 3
- Setting of vk.plot_projection() HOT 2
- ValueError: setting an array element with a sequence HOT 4
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 cellrank.