Hi Jean-Paul,
Thanks for the suggestions.
OK... here's my SSCCE:
It looks like you need to make an instance of
`TorClientEndpointStringParser`. If a class `implements´ an interface then
instances of that class `provide´ the interface.
The plugin system searches for objects that `project´ the requested
interface.
cd projects/virtualenv-1.11.1/
./virtualenv.py ~/virtenv-endpoints-test
. ~/virtenv-endpoints-test/bin/activate
usewithtor pip install twisted
cd ~/projects
git clone https://github.com/david415/txsocksx.git
cd txsocksx
git checkout endpoint_parsers
usewithtor python setup.py install
cd examples # CWD is now /home/human/projects/txsocksx/examples
cp tor_client_endpoint_parser.py
/home/human/virtenv-endpoints-test/lib/python2.7/site-
packages/twisted/plugins
find /home/human/virtenv-endpoints-test/ -name "*.pyc" | xargs rm
find /home/human/virtenv-endpoints-test/ -name "dropin.cache" | xargs rm
python tor-http.py
Traceback (most recent call last):
File "tor-http.py", line 32, in <module>
torEndpoint = clientFromString(reactor,
"tor:host=timaq4ygg2iegci7.onion:port=80")
File "/home/human/virtenv-endpoints-test/local/lib/python2.7/site-
packages/twisted/internet/endpoints.py",
line 1737, in clientFromString
raise ValueError("Unknown endpoint type: %r" % (aname,))
ValueError: Unknown endpoint type: 'tor'
I also tried the PYTHONPATH trick:
mkdir -p fu/twisted/plugins
cp tor_client_endpoint_parser.py fu/twisted/plugins
PYTHONPATH=/home/projects/txsocks/examples/fu python tor-http.py
Traceback (most recent call last):
File "tor-http.py", line 32, in <module>
torEndpoint = clientFromString(reactor,
"tor:host=timaq4ygg2iegci7.onion:port=80")
File "/home/human/virtenv-endpoints-test/local/lib/python2.7/site-
packages/twisted/internet/endpoints.py",
line 1737, in clientFromString
raise ValueError("Unknown endpoint type: %r" % (aname,))
ValueError: Unknown endpoint type: 'tor'
I wonder if I am having a deployment problem here or if my code has
got problems.
https://github.com/david415/txsocksx/blob/endpoint_parsers/examples/tor_clie...
https://github.com/david415/txsocksx/blob/endpoint_parsers/examples
/tor-http.py
Cheers!
David
On Wed, Apr 30, 2014 at 2:14 PM, <exarkun@twistedmatrix.com> wrote:
On 01:42 pm, dstainton415@gmail.com wrote:
Greetings,
http://twistedsphinx.funsize.net/projects/core/howto/plugin.html
Note that's a random version of the documentation from who knows how long
ago. If you want a random version of the documentation then I suggest
using
http://twisted.readthedocs.org/en/latest/ instead.
suggests that I can also set the PYTHONPATH to a directory:
Sure. As a development environment trick. Putting the module defining
your
plugin into *the* twisted/plugins/ directory will reduce your runtime
cost.
This is purely a deployment decision, though, so if you'd rather expand
PYTHONPATH then you can.
"""if a directory which has been added to sys.path (typically by
adding it to the PYTHONPATH environment variable) contains a directory
named twisted/plugins/ , each .py file in that directory will be
loaded as a source of plugins."""
I'm using twisted 13.2.0 in a virtualenv... and I've tried setting
PYTHONPATH to a "twisted/plugins" directory no avail. I must be doing
something wrong here but after scouring the docs and twisted source
code... I'm just not sure.
I don't think there's enough information here to debug your problem. Try
coming up with an http://sscce.org/ or at least providing all of the
details
about your setup - the exact value of PYTHONPATH, the command you use to
launch the program, the working directory you use, the complete, exact
filesystem hierarchy starting at the top-most directory containing any
code
you wrote or expect to be in use, etc.
Some random suggestions that have helped other people and might help you
but
who knows:
* delete all the dropin.cache files you can find and try again
* delete all the .pyc files you can find and try again
* put absolute paths into PYTHONPATH, not relative paths
* don't put "/foo/bar/twisted/plugins" into PYTHONPATH, put "/foo/bar"
* Make sure your plugin *provides* the plugin interface and IPlugin.
This
is not the same *implementing* those interfaces.
Good luck,
Jean-Paul
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python