Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add "Open with Spyder" entry to Windows File Explorer's context menu #971

Closed
spyder-bot opened this issue Feb 17, 2015 · 23 comments
Closed

Comments

@spyder-bot
Copy link
Collaborator

From pierre.raybaut on 2012-03-11T08:12:28Z

This feature has been requested in issue #466 .

Original issue: http://code.google.com/p/spyderlib/issues/detail?id=971

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2012-03-18T13:44:55Z

Labels: -Milestone-Release2.2 Milestone-v2.2

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2012-03-18T13:55:42Z

Labels: -Milestone-v2.2 MS-v2.2

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2012-03-18T14:14:28Z

Labels: -Type-Enhancement Type-Enh

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2012-09-23T04:33:25Z

Blockedon: spyderlib:466

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2013-03-16T15:25:09Z

This issue was updated by revision 00ba20a9cf0a .

Please test this carefully before the final v2.2.0 release and mark this issue as Verified.

Status: Fixed

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2013-03-17T01:58:49Z

How to test this new feature:

  • build Spyder's installer: python setup.py build bdist_wininst
  • install Spyder (run the installer)
  • check if right-click menu on Python file shows an entry "Edit with Spyder"
  • uninstall Spyder
  • check if the "Edit with Spyder" has been removed from context menu as expected

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-03-18T08:21:10Z

I have tested this using the procedure in comment 6. The install portion works correctly. The right-click menu gets updated as desired. However, the uninstall is not successful at removing "Edit with Spyder" from the context menu.

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2013-03-18T08:53:26Z

Could you take a look at the corresponding registry key to see what's remaining exactly ? (and export this fraction of your registry tree)

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2013-03-18T08:55:14Z

Here are the exact locations to take a look at:
HKEY_CURRENT_USER\Software\Classes\Python.File\shell
HKEY_CURRENT_USER\Software\Classes\Python.NoConFile\shell

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-03-18T08:56:42Z

All of the registry keys seem intact. I also just found this Python bug report :( http://bugs.python.org/issue13276 It may be that the "remove" section of the post install script is not even being called.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-04-06T20:21:43Z

Labels: Cat-Miscelleneous

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2013-04-07T05:20:34Z

@-Carlos: This needs to be taken care of before v2.2.0 final release.

I confirm that the distutils bdist_wininst installer is partially broken: the post-install script is not executed with the '-remove' command line argument when uninstalling the package ( http://bugs.python.org/issue13276).Furthermore , the bdist_msi installer is also broken: first, it does not follow the same logic as bdist_wininst (no '-install' command line option when running the post-install script when installing the package), second the post-install script is not executed at all when uninstalling the package ( http://bugs.python.org/issue15797 ).

I must say that I'm quite disappointed in Python development team... these bugs seem quite important but were ignored since at least a year and a half for the first one, and the feature has never been implemented for the second one...

We have two solutions:

  • patch Python to make the distutils bdist_wininst installer work
  • patch Python to make the MSI package work (in this case, this could even be a monkey-patch to be included in Spyder source repo)

Status: Started
Labels: -Priority-Medium Priority-Critical

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-04-07T08:33:09Z

Ok, I will stop the final release until we solve this issue.

I'm not sure if I understood you correctly: by patching Python you mean patching its source code? before compiling it? If that's the case, I don't think that's the way to go because it won't work for people that don't use Python(x,y).

So I'd be in favor of your second solution, if it could be developed as a monkey-patch that could live in our tree.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-04-08T14:48:37Z

Pierre, I know you are quite busy so you could tell more concretely what you have in mind and I could try to develop a solution according to that.

As I told you, right now I don't understand too well what we should do about this issue.

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-04-09T12:37:01Z

@-Pierre: I have successfully applied the patch to Python suggested here: http://bugs.python.org/issue13276 It actually doesn't modify Python itself but instead modifies the installer program that gets embedded in the installer executable we create. The required patched wininst-9.0.exe is attached. This should be placed into this directory on Windows:

C:\Python27\Lib\distutils\command

I'd try to build the installer myself, but I'm just not familiar enough with that process to be confident in getting it right. If you'll build the installer I can certainly test it.

Cc: pierre.raybaut

Attachment: wininst-9.0.exe

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-04-09T12:46:06Z

Sorry, just remembered comment #6 above. I'll try it out myself :).

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-04-09T12:54:51Z

Okay, I can verify that, after replacing wininst-9.0.exe as described in comment 15 and building Spyder's Windows installer as described in comment 6, everything works. I repeated the Spyder install and uninstall process twice, and I can confirm that the "Edit with Spyder" context menu entry gets installed and removed properly now.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-04-09T13:15:48Z

Great news Jed! and thanks for taking care of the issue so quickly.

I think we should add the mentioned patch to our tree (outside of spyderlib of course, i.e. next to create_app.py) and create a new wiki page describing how to apply it to generate the right installer. What do you think?

Or would it be easier to just add your wininst-9.0.exe? I just would like to ensure that any of us can easily generate new installers when needed.

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-04-09T13:37:04Z

... and attached is the 64-bit version, wininst-9.0-amd64.exe, which would be required to build installers for 64-bit Python 2.7.

@-Carlos: We're actually patching the C source to distutils which comes with the Python source. Then the wininst-9.0 components must be built form that source using Visual Studio 2008. Once built, you have to copy them into your Python lib directories so that distutils can grab them and stuff them into your installer. So it's not really something that everyone will be able to build on their own. Maybe a wiki page that describes how distutils is currently broken, provides links to download the .exe files I've built, and instructions on where to put them would be better.

Attachment: wininst-9.0-amd64.exe

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-04-09T20:53:27Z

I created a wiki page here to describe how to patch distutils before building the Windows installer: https://code.google.com/p/spyderlib/wiki/PatchingDistutils

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-04-24T08:59:16Z

I think we can close this issue now. I just added the command needed to build the installer to the wiki page (first one of comment #6) as the last step in the process.

Jed, could you be in charge of generating the installers once 2.2 final is released? I'll take care of the source release plus our Mac app.

Status: Fixed

@spyder-bot
Copy link
Collaborator Author

From jed.lud...@gmail.com on 2013-04-24T09:02:52Z

Yes, I can generate installers.

Cc: jed.lud...@gmail.com

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-04-24T09:11:15Z

Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant