Package Plotly can't be installed

Hi Support,
Sometimes an application doesn’t install properly if there is plotly in the requirements. Internally we have a workaround for this: install the application without plotly, and then install plotly seperately. However, this doesn’t work for my application anymore. I keep on getting the following error message:

C:\viktor_sdk>viktor-cli run HI-App -- pip install plotly --upgrade -t /usr/src/packages
Collecting plotly
  Downloading plotly-5.3.1-py2.py3-none-any.whl (23.9 MB)
     |████████████████████████████████| 23.9 MB 8.6 MB/s
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting tenacity>=6.2.0
  Downloading tenacity-8.0.1-py3-none-any.whl (24 kB)
Installing collected packages: six, tenacity, plotly
Successfully installed plotly-5.3.1 six-1.16.0 tenacity-8.0.1
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/shutil.py", line 566, in move
    os.rename(src, real_dst)
OSError: [Errno 18] Invalid cross-device link: '/tmp/pip-target-ivuwmvz8/lib/python/plotly' -> '/usr/src/packages/plotly'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 188, in _main
    status = self.run(options, args)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 185, in wrapper
    return func(self, options, args)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 449, in run
    options.target_dir, target_temp_dir, options.upgrade
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 507, in _handle_target_dir
    target_item_dir
  File "/usr/local/lib/python3.7/shutil.py", line 577, in move
    symlinks=True)
  File "/usr/local/lib/python3.7/shutil.py", line 368, in copytree
    raise Error(errors)
shutil.Error: [('/tmp/pip-target-ivuwmvz8/lib/python/plotly/validators/scatter3d/line/colorbar/_showticksuffix.py', '/usr/src/packages/plotly/validators/scatter3d/line/colorbar/_showticksuffix.py', '[Errno 6] No such device or address'
)]

Is there an other way to install this package?

Bart we have had this problem many times. It was solved for me by installing the application making use of the Linux installation. Maybe you could try that.

4 Likes

I have followed the instructions to enable the WSL method for running apps. I think I have done evertything properly, because the system check gives no errors. If I start PyCharm, I receive the following error message, so I can’t navigate to the \wsl$ path:

'\\wsl$\Ubuntu\home\bavo6\viktor-apps\HI-BelastingcombiApplicatie'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.
Microsoft Windows [Version 10.0.19042.1237]
(c) Microsoft Corporation. Alle rechten voorbehouden.

C:\Windows>

Do I have to configurate PyCharm in an additional way?

Probeer je terminal aan te passen in PyCharm

Bedankt, ik heb alleen wsl.exe in de shell path gezet, en nu start hij de juiste terminal wel op

1 Like

Hi Bart,

Have you encountered the error again since the change to WSL2?
Changing to WSL2 tends to improve the user experience with Docker significantly, so I expect this will indeed have solved the problem!

I have trouble using the terminal with the wsl shell. The terminal starts up, but I can’t acces any files, and I can’t find the viktor-cli path. Is it possible for you to provide me some remote help via Teams?

Hi Bart,

If you’re using WSL-2 that means you need a slightly different setup: the old viktor-cli.exe can not be used from within wsl.exe. In WSL-2 you work with a slightly different structure: normally you would have your cli located in C:\Users.…\viktor-apps, but in WSL it will be the path: \\wsl$\Ubuntu-20.04\home\<username>. This path you should be able to access, navigate to this path and create a folder ‘viktor-apps’: \\wsl$\Ubuntu-20.04\home\<username>\viktor-apps. You can copy all the content of your old ‘viktor-apps’ folder located in C:\Users\...\viktor-apps to this folder (including .env), but you will need the linux version of the cli, which can be found here: Installation | VIKTOR Documentation.

After placing the linux version of the cli in the new folder, make sure it’s executable by using the command sudo chmod +x ./viktor-cli when you’re in the viktor-apps folder (cd viktor-apps in the wsl terminal). Finally, you can navigate back to the user folder (cd ..) and make sure the cli has all rights for this folder: sudo chmod -R 777 viktor-apps.

Now you’ll be able to run the your apps with the linux cli from WSL and this should also work in Pycharm. Hopefully this solves your problem!

The WSL2 integration on the Docker system wasn’t configured correctly I suppose. If I run the Ubuntu terminal seperately (not within PyCharm), I can install the application correctly. @kvangiessen : the installation precess is indeed a lot faster.