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.