r-karimi / cryoEM_vesicle_segmentation

0 stars 0 forks source link

ERROR: Could not build wheels for vesicle-picker, which is required to install pyproject.toml-based projects #1

Open KatrinaABlack opened 3 weeks ago

KatrinaABlack commented 3 weeks ago

Hi! I am trying to install this on a unix workstation through a conda environment, with CUDA 11.5 and Python 3.9. When I get to the pip install . step, it errors out with "ERROR: Could not build wheels for vesicle-picker, which is required to install pyproject.toml-based projects". My pyproject.toml is defined below and the poe installation of pytorch seems to be OK.

install-pytorch = "pip install torch==1.11.0+cu115 torchvision==0.12.0+cu115 torchaudio==0.11.0+cu115 -f https://download.pytorch.org/whl/torch_stable.html"

The full error is: Building wheels for collected packages: vesicle-picker, segment-anything Building wheel for vesicle-picker (pyproject.toml) ... error error: subprocess-exited-with-error

× Building wheel for vesicle-picker (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [24 lines of output] Traceback (most recent call last): File "/home/ptclfocuser/software/home/software/anaconda3/envs/cryoEM_vesicle_segmentation/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in main() File "/home/ptclfocuser/software/home/software/anaconda3/envs/cryoEM_vesicle_segmentation/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "/home/ptclfocuser/software/home/software/anaconda3/envs/cryoEM_vesicle_segmentation/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel return _build_backend().build_wheel(wheel_directory, config_settings, File "/tmp/pip-build-env-kiv03yf0/overlay/lib/python3.9/site-packages/poetry/core/masonry/api.py", line 58, in build_wheel return WheelBuilder.make_in( File "/tmp/pip-build-env-kiv03yf0/overlay/lib/python3.9/site-packages/poetry/core/masonry/builders/wheel.py", line 88, in make_in wb.build(target_dir=directory) File "/tmp/pip-build-env-kiv03yf0/overlay/lib/python3.9/site-packages/poetry/core/masonry/builders/wheel.py", line 124, in build self._copy_module(zip_file) File "/tmp/pip-build-env-kiv03yf0/overlay/lib/python3.9/site-packages/poetry/core/masonry/builders/wheel.py", line 265, in _copy_module to_add = self.find_files_to_add() File "/tmp/pip-build-env-kiv03yf0/overlay/lib/python3.9/site-packages/poetry/core/masonry/builders/builder.py", line 171, in find_files_to_add for include in self._module.includes: File "/home/ptclfocuser/software/home/software/anaconda3/envs/cryoEM_vesicle_segmentation/lib/python3.9/functools.py", line 993, in get val = self.func(instance) File "/tmp/pip-build-env-kiv03yf0/overlay/lib/python3.9/site-packages/poetry/core/masonry/builders/builder.py", line 97, in _module return Module( File "/tmp/pip-build-env-kiv03yf0/overlay/lib/python3.9/site-packages/poetry/core/masonry/utils/module.py", line 65, in init raise ModuleOrPackageNotFound( poetry.core.masonry.utils.module.ModuleOrPackageNotFound: No file/folder found for package vesicle-picker [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for vesicle-picker Building wheel for segment-anything (setup.py) ... done Created wheel for segment-anything: filename=segment_anything-1.0-py3-none-any.whl size=36590 sha256=f600f5797fbd2ff086f1b94311f2554e35344ce3ffa1abb2c5508321203067f6 Stored in directory: /tmp/pip-ephem-wheel-cache-n6ye1574/wheels/d5/11/03/7aca746a2c0e09f279b10436ced7175926bc38f650b736a648 Successfully built segment-anything Failed to build vesicle-picker ERROR: Could not build wheels for vesicle-picker, which is required to install pyproject.toml-based projects

r-karimi commented 3 weeks ago

Hi Katrina, I think this is a result of an old name for the package. I just pushed an update to the repository. Could you download the latest version of the repo and try the installation again?

KatrinaABlack commented 3 weeks ago

Thanks! Will do :) I did get a workaround by adding this to the pyproject.toml as well! Thanks for the prompt response.

[tool.poetry] name = "vesicle-picker" version = "0.1.0" description = "" authors = ["Ryan Karimi ryan.karimi@mail.utoronto.ca"] readme = "README.md" packages = [ { include = "cryoEM_vesicle_segmentation" }, { include = "cryoEM_vesicle_segmentation/*/.py" }, ]

KatrinaABlack commented 3 weeks ago

I tried reinstalling from the update, but the error has changed a little, but still fails:

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for cryoEM_vesicle_segmentation Building wheel for segment-anything (setup.py) ... done Created wheel for segment-anything: filename=segment_anything-1.0-py3-none-any.whl size=36590 sha256=c0fc1ec2e88d145a4b388219b23a151e95d733b66c9e75e215620867c264cae7 Stored in directory: /tmp/pip-ephem-wheel-cache-3ws0dfa5/wheels/d5/11/03/7aca746a2c0e09f279b10436ced7175926bc38f650b736a648 Successfully built segment-anything Failed to build cryoEM_vesicle_segmentation ERROR: Could not build wheels for cryoEM_vesicle_segmentation, which is required to install pyproject.toml-based projects.

The above workaround still fixes this error.

There are still references to the old name of this project in the .py files (eg in filter_vesicles.py and postprocess.py) so attempting to execute the programs fails as it cannot find vesicle_picker - I think all of these references need to be updated to reflect the new project name.

r-karimi commented 3 weeks ago

Thanks for the heads up--I'll push a new commit shortly!

KatrinaABlack commented 3 weeks ago

Great! If you have time, I'd love some brief notes on how to use the program - the test works fine, but I'm still not sure how best to execute for my own data (just as a jupyter notebook?) Thanks for making this, very excited to try it out.

r-karimi commented 3 weeks ago

Happy to share some notes! We are currently working on a more comprehensive of instructions and a paper describing the program in more detail. The preprint should be up in the next week or two. In the meantime, I would suggest using the test Jupyter notebook to find the right image filtering parameters and vesicle postprocessing parameters for your dataset, and then using find_vesicles.py, filter_vesicles.py, and generate_picks.py in that order to process your data. You can use the template parameters files in the repository to get started with the scripts.

Feel free to email me at ryan.karimi(at)mail.utoronto.ca if you want to chat more about your specific dataset—very happy to help!

r-karimi commented 1 week ago

Hi @KatrinaABlack, just wanted to give you a heads up that the preprint describing this program is up and we've made a new repository with more installation instructions (and hopefully no errors). You can find it here!