Patiencer / pyscripter

Automatically exported from code.google.com/p/pyscripter
0 stars 0 forks source link

Seems like pyscripter 1.9.9.2 is not picking up code changes #256

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. create two modules
2. let the first module call a function in the second module
3. change code in the second module

Normally in pyscripter I would expect the code change to be reflected when
exectuting / debugging. But from time to time I have experience that no
matter how many times I change code in the second module (and save), it
runs as if I hadn't changed anything. It seems like it is using a old .pyc
file from somewhere.

I have tried to delete the pyc files to force a recompilation, but the
issue continues. It is not until I restart pyscripter that the issue goes
away. 
I ended up using the released version again, but ran into the issue that it
does not understand the 'with' syntax. So re installed the newest beta. And
the issue is still there. 

I'm on winXp

Looking forward to any explanation, or work around that you can provide...
Tried to use eclipse, but missing the interactive interpreter to much.. 

PyScripter is a great product!
Br
Kim

Original issue reported on code.google.com by kimbendt...@gmail.com on 18 Nov 2008 at 12:06

GoogleCodeExporter commented 9 years ago
Hi,

I'd just like to second kimbendtsen's comments - PyScripter was recommended to 
me by
a colleague and I really like it, but I haven't been able to figure out how to 
get it
to recompile my code.  At this point, I have half a dozen .py files, and it 
insists
on running old versions of each of them except the top level module.  The only 
way
around this that I can find is to restart PyScripter.  Any advice would be 
greatly
appreciated.  

Thanks,

-Eric

Original comment by eric.cas...@gmail.com on 18 Nov 2008 at 3:45

GoogleCodeExporter commented 9 years ago
Ok, I figured out a way around this by using the remote python engine.  To use 
it
with PyScripter you need to get the 2.6 version of Rpyc (per Issue #250).  This 
is
hard to find, as they don't have the old version posted in their releases.  
They do
have a SVN repository with the code here:
http://sebulbasvn.googlecode.com/svn/tags/rpyc/2.60/

For some reason I couldn't use SVN to check it out, so I just took a few 
minutes and
saved each file individually.  I placed these files here:
...\Python25\lib\site-packages\Rpyc

I then adjusted the Python path by editing my system variables (to include 
\Rpyc and
the 2 subfolders that looked important).  I could then type "import Rpyc" at the
PyScripter interpreter and have it work.  From there I selected the option:
Run->Python Engine->Remote.

In the same menu, there is a "Reinitialize Python Engine" option, and you have 
to do
this in between runs to get it to update (I think there is an option to do this
automatically, but I haven't found it yet).  Otherwise, it now works great. 

Hope this helps,

-Eric

Original comment by eric.cas...@gmail.com on 18 Nov 2008 at 7:23

GoogleCodeExporter commented 9 years ago
This has been discussed extensively here before. To quote from such
earlier discussions:

If you change your main script the changes will be reflected.  If you
change any other module which is used by the main script, the only way
currently in PyScripter to make sure the changes take effect is to use
a remote engine and reinitialize it.  You can automatically
reinitialize the remote engine by setting up a run configuration in
the Project Explorer.

By the way I have put the Rpyc version 2.6 for Python 2.4-2.6 in the pyscripter
Google code site at http://code.google.com/p/pyscripter/downloads/list.
I will move to Rpyc version 3.0 in the near future.

You can try to manually reload/import again the changed modules using
the Python reload builtin function but reloading has its own problems.

Original comment by pyscripter on 6 Dec 2008 at 3:29

GoogleCodeExporter commented 9 years ago
Issue 290 has been merged into this issue.

Original comment by pyscripter on 4 Mar 2009 at 12:20

GoogleCodeExporter commented 9 years ago
Okay, allow me a bit of a rant, but only because I really do love PyScripter:

This is a rather serious flaw for an "As Designed" status, particularly since 
the old
PyScripter 1.7.2 does not have this problem. Does "As designed" imply that most 
users
will never run into this bug because they only work on one module per session? 
A bit
unrealistic, I dare say.

It's disappointing that the upgrade for this great product requires such a
non-obvious, technical, and cumbersome solution just to get it to work 
correctly. A
lot of users will give up on the PyScripter upgrade (as I had done) because 
they will
never find this thread with the work around. And they will give up after 
spending a
few (very frustrating) hours trying to figure out why their module changes are 
not
taking effect. They will not be recommending PyScripter to their friends and 
colleagues.

If I have to install and configure a remote engine to fix this issue, why can't
PyScripter do this for me? Like Python itself, PyScripter should just "work" 
right
out of the box. If it ceases to do this, it will lose one of its best 
advantages over
other IDE's
</rant>

Original comment by davidossorio on 4 Mar 2009 at 1:00

GoogleCodeExporter commented 9 years ago
This issue existed in all versions of PyScripter.  It is also an issue with 
Python
itself.   There is a reload function but it is not perfect since it cannot 
affect
live Python objects.  The only sure way to make sure all changes are taken into
account is to start with a new interpreter, which is only possible with the 
external
engine.

The external engine uses rpyc a module develop and maintained by a separate 
author
and has a separate update cicle than PyScripter.  It is not such a big deal to
install it.  Once you use the remote interpreter then you just reinitialize the
engine before running a script (a single command).  This can also be automated 
by
creating a run configuration.

I am sorry if the above is not good enough...

Original comment by pyscripter on 4 Mar 2009 at 3:45

GoogleCodeExporter commented 9 years ago
>>This issue existed in all versions of PyScripter.

I disagree. I've been using PyScripter 1.7.2.0 for the last year with multiple
modules and have never seen this problem. In fact, that was why it was so 
immediately
noticeable the first time I tried 1.9.9.6, since I almost always work on 
multiple
modules at the same time.

I did the exact test that failed in 1.9.9.6 in 1.7.2.0, and it worked fine in
1.7.2.0, so perhaps we're not talking about the same issue here (?)

Try the following in 1.7.2.0:
With two modules, Test1.py, Test2.py: import Test2 from Test1, add a variable to
Test2.py, print it in Test1.py, then change the value in Test2.py and print it 
again
in the Test1.py debugger.

This DOES work correctly in 1.7.2.0, and it always has. It does not work 
correctly in
1.9.9.6.

My larger point, however, is that any IDE that only allows you to work on one 
module
per session by default has a seriously flawed design. If Visual Studio allowed 
me to
work on only C# module per session by default, I would think it was seriously 
flawed
also. 

I agree that it's not such a big deal to install rpyc, IF you know that's what 
you
need to do to fix this problem. Most PyScripter users are not going to know 
this,
however. 

It would be much better if the PyScripter installer at least offered an option 
to do
this, along with an explanation of why it's necessary.

Original comment by davidossorio on 4 Mar 2009 at 7:29

GoogleCodeExporter commented 9 years ago

Original comment by pyscripter on 12 May 2009 at 2:19

GoogleCodeExporter commented 9 years ago
Issue 301 has been merged into this issue.

Original comment by pyscripter on 21 May 2009 at 7:31

GoogleCodeExporter commented 9 years ago
Exposing the (imperfect) reload function as a simple menu choice/button click 
would be 
a huge step forward.  It would permit manual reload of individual scripts -- 
something 
I fully expect to have to do after making edits, but can now only do by 
restarting 
PyScripter itself.

I love PyScripter.  It is, by far, the best Python IDE I've yet found.  This is 
the 
only significant hole I've found in its performance so far.

Original comment by JohnWPi...@gmail.com on 22 Jul 2009 at 4:05

GoogleCodeExporter commented 9 years ago
pyscripter is very good. If it can work with remote engine fine, I think we can 
ignore this problem first and let developer has more enhancement.

Original comment by len...@gmail.com on 31 Aug 2009 at 7:40

GoogleCodeExporter commented 9 years ago
The install of rpyc is not currently a fix for this issue since Pyscripter can 
not 
find the module even if it's installed.  From the command line I can not import 
Rpyc 
but can import rpyc.  I also have the issue that changes in secondary modules 
are not 
propagated unless I completely quit Pyscripter and then restart it.

This applies to Pyscripter v 1.9.9.7
Python 2.6.2
rpyc 3.0.7

Original comment by mattc...@earthlink.net on 24 Sep 2009 at 6:12

GoogleCodeExporter commented 9 years ago
Issue 345 has been merged into this issue.

Original comment by pyscripter on 2 Jan 2010 at 4:45

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Same problem as everybody, but there's more. I'm stuck with Python 2.3 because 
that's the last valid version to work with PythonForDelphi ; however it seems 
that 
Rpyc is incompatible with 2.3 (starts at 2.4 ?) I've tried a lot of things, 
including reload, but is seems the only reliable way is to quit PyScripter and 
run 
again. I've completely reorganised my architecture, every module is changed and 
needs to be debugged, so now I have some idea of what hell must look like. Help 
!

Original comment by herve.va...@skynet.be on 18 Feb 2010 at 8:54

GoogleCodeExporter commented 9 years ago
I also like tool very much :-) but i have the same problem...

Rpyc helps, but with it i have to do following steps to update included module:
1. change included module
2. stop debugger
3. press Ctrl+F2 (to reinitialize remote python engine)
4. run debugger again

Can i avoid steps 2 and 3? This is a little bit annoying...

Original comment by kirill.kornyakov on 24 Mar 2010 at 7:27

GoogleCodeExporter commented 9 years ago
The latest version 2.0 bundles rpyc (no separate installation needed), uses the 
remote engine by default and reinitializes the engine before each run also by 
default.  This should take care of this issue I hope.

Original comment by pyscripter on 31 Jul 2010 at 12:17

GoogleCodeExporter commented 9 years ago
Issue 231 has been merged into this issue.

Original comment by pyscripter on 31 Jul 2010 at 11:23

GoogleCodeExporter commented 9 years ago
Hi again pyscripter team. 

What a nice surprise to see and test this to be fixed. I'm looking forward to 
test drive 2.0. 

Br Kim 

Original comment by kimbendt...@gmail.com on 1 Aug 2010 at 9:01

GoogleCodeExporter commented 9 years ago
Issue 370 has been merged into this issue.

Original comment by pyscripter on 9 Aug 2010 at 2:15

GoogleCodeExporter commented 9 years ago

Original comment by pyscripter on 30 Sep 2010 at 3:07

GoogleCodeExporter commented 9 years ago
Issue 539 has been merged into this issue.

Original comment by pyscripter on 15 Jul 2011 at 1:27