cartoonify icon indicating copy to clipboard operation
cartoonify copied to clipboard

ImportError: cannot import name run

Open JBaczuk opened this issue 7 years ago • 8 comments

Installed on mac using $ pip install --user and trying to run with $ cartoonify, getting this error: ImportError: cannot import name run. Installed module run using $ pip install run --user

JBaczuk avatar Jul 05 '18 14:07 JBaczuk

I'm getting the same error here too

RafaelBehrens avatar Jul 05 '18 15:07 RafaelBehrens

This also fails on Ubuntu:

Traceback (most recent call last):
  File "/home/parallels/.local/bin/cartoonify", line 9, in <module>
    load_entry_point('cartoonify==0.1.0', 'console_scripts', 'cartoonify')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 542, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2569, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2229, in load
    return self.resolve()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2239, in resolve
    raise ImportError(str(exc))
ImportError: 'module' object has no attribute 'run'

JBaczuk avatar Jul 05 '18 15:07 JBaczuk

Ubuntu 18.04:

Traceback (most recent call last):
  File "/home/v/.local/bin/cartoonify", line 11, in <module>
    load_entry_point('cartoonify==0.1.0', 'console_scripts', 'cartoonify')()
  File "/home/v/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 476, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/v/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2700, in load_entry_point
    return ep.load()
  File "/home/v/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2318, in load
    return self.resolve()
  File "/home/v/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2324, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named run

v1993 avatar Jul 05 '18 18:07 v1993

I get around this issue by running cartoonify directly from the source cartoonify/ directory with python2.7 run.py.

For compatibility with Python 2.7 I also had to change line 127 of workflow.py from:

        with open(str(scores_path), 'w', newline='') as f:

to:

        with open(str(scores_path), 'w') as f:

Thirdly, the Path input for specifying input images did not work for me on osx. I changed line 76 in run.py from:

            path = Path(input("enter the path to the directory to process:"))

to:

            path = Path.cwd() / 'images'

With this modification, I place any number of input images in the images/ folder, and launch cartoonify with python2.7 run.py --batch-process.

ghost avatar Jul 06 '18 11:07 ghost

It seems to actually be written for Python 3 (as evidenced by the use of input() instead of raw-input(), the newline parameter to open(), etc.), contrary to the documentation which says Python 2.7.

jgrivolla avatar Jul 06 '18 16:07 jgrivolla

The README.md instructions now reflect some of what I wrote in my previous comment (latest commit 084146e).

ghost avatar Jul 06 '18 17:07 ghost

@anders-dc your suggestions are spot on - I've since done a clean clone of the repo on my machine, and updated the readme and desktop reqs.

As I'm sure a few people have noticed, the desktop functionality and documentation is a bit lacklustre. I mostly only ran this on the desktop to help me debug the raspi. In fact, ensuring the code ran on the pi dictated quite a few of the seemingly odd aspects of the repo:

  • Python 2.7 was required for running on the pi because of the specific version of tensorflow required, along with the limited binaries available through APT.
  • Seperate requirements lists were required for pi and desktop installation, because of the above.

I'm really happy for anyone to submit pull requests to improve the desktop functionality.

danmacnish avatar Jul 07 '18 01:07 danmacnish

python2 -m pip install run --user # forces the use of the pip linked to legacy Python even on a Mac that also has modern Python installed.

cclauss avatar Jul 07 '18 07:07 cclauss