Comments (46)
I don't have a Windows machine here right now, can you please try the following? Replace this line: https://github.com/saghul/pyuv/blob/master/setup_libuv.py#L119 with:
exec_process(b'cmd.exe /C vcbuild.bat release', cwd=self.libuv_dir, env=env, shell=True)
and this line: https://github.com/saghul/pyuv/blob/master/setup_libuv.py#L131 with
exec_process(b'cmd.exe /C vcbuild.bat clean', cwd=self.libuv_dir, shell=True)
from pyuv.
Basically it's just adding the "b" in front, thus making it a bytes object which does support the buffer API.
from pyuv.
Fixing exec_command is messier than that. Making the command a bytes object just messes up stuff elsewhere :-( I don't have a complete fix, but I did manage to hack it to tell me what's really wrong, which is that vcbuild.bat isn't present in Visual Studio 2010, which is used for Python 3.3.
It's not at all obvious to me how to fix the build process for libuv to use VS2010, so I can't really take this much further. And I'm not sure how helpful it would be to try to properly address the various bytes/string issues in exec_command if the build is just going to fail anyway...
from pyuv.
Fixing exec_command is messier than that. Making the command a bytes object just messes up stuff elsewhere :-( I don't have a complete fix, but I did manage to hack it to tell me what's really wrong, which is that vcbuild.bat isn't present in Visual Studio 2010, which is used for Python 3.3.
vcbuild.bat is included in libuv, it's not taking it from the system. Or do you mean other vcbuild.bat? Can you please paste the output of the command when it failed? You can add silent=False to the exec_process call to see the full output.
It's not at all obvious to me how to fix the build process for libuv to use VS2010, so I can't really take this much further. And I'm not sure how helpful it would be to try to properly address the various bytes/string issues in exec_command if the build is just going to fail anyway...
It will try to use different VS2010 and it it's not available fallback to 2008, so if you have 2010 installed you should be fine.
from pyuv.
On 6 February 2013 18:15, Saúl Ibarra Corretgé [email protected]:
vcbuild.bat is included in libuv, it's not taking it from the system. Or
do you mean other vcbuild.bat?
Can you please paste the output of the command when it failed? You can
add silent=False to the
exec_process call to see the full output.
My apologies - I was misremembering the VC command names.
I'll try to set up a proper test in the next few days. A big part of the
problem is likely to be that I have a fairly unusual build environment - I
run Powershell as my main shell, and don't have Visual C in my PATH. This
does not harm standard distutils, as it does not rely on cmd.exe
functionality, and it gets the location of Visual C from the registry, but
it is prone to cause problems for more complex build setups.
I'll try two approaches to isolate the problem - I will run in my normal
environment adding silent=False and working round the str/bytes issues as
above, and I'll also set up a more conventional build environment (VC on
the PATH using cmd.exe) and see how that works. My build environment is on
a different system, though, so it may take me a couple of days to report
back.
from pyuv.
I see. I'll try to setup a test environment as well. Hopefully we can get to the bottom of this :-)
from pyuv.
You may want to hold the testing for now. I managed to get an environment for this, and things are a mess, to say the least. libuv uses gyp to generate the build files, but gyp itself is written in Python but it doesn't support Python 3. I managed to get around that by manually modifying some files, bus VS2010 seems to be very picky about variable declaration and initialization, I'll fix this and drop a line around here once it's done.
from pyuv.
Ok, I managed to get it working, sort of. pyuv compiles, but you'll need to have Python 2 installed and modify vcbuild.bat from deps/libuv to use it, in order for GYP to work. Yes, it's a mess but right now I don't know a better solution...
from pyuv.
Hum, I guess I could add a patch only for Windows and if Python 3 is used, but the path would be hardcoded to C:\Python27\python.exe
from pyuv.
I would say this patch is fine for developer releases, while for a stable release you could include the already generated project files for VS 2008 and VS 2010 and just pick the right one depending on the interpreter.
from pyuv.
The problem is that GYP doesn't generate generic project files, they are either Debug or Release and arch specific.
Ideally libuv (or pyuv) should contain a VS project file to avoid using GYP altogether, since it's a no-go on Python 3 at the moment... :-S
from pyuv.
@pfmoore The bytes/string issue should be fixed by #82 so you should get a proper error message from executing vcbuild.bat.
from pyuv.
Update: The build succeeds if python
in PATH is pointing to 2.6 or 2.7 and setup.py is executed with a Python 3 version.
from pyuv.
I made an upstream report for this: joyent/libuv#723
from pyuv.
Great! I added some feedback there :-)
from pyuv.
Providing a PYTHON env variable as an override and setting it to an appropriate value from setup_libuv.py seems like the way to go. Are you willing to provide such a patch for libuv? Otherwise I'll add it to my TODO list :-)
from pyuv.
from pyuv.
Awesome!
from pyuv.
It landed on libuv master, great!
from pyuv.
Not to put any pressure or anything :-) but are you planning to send a pull request with a fix for this? Otherwise I'll work on the fix myself. I thought I'd ask, since you have been doing some great work on the Windows side recently and I want to avoid doing duplicated work.
from pyuv.
What do you even propose as solution? :)
from pyuv.
Check if %SYSTEMDRIVE%\Python26\python.exe or %SYSTEMDRIVE%\Python27\python.exe exist and if so set the PYTHON env variable, else raise an exception asking the user to either export the PYTHON env variable or install Python 2.
from pyuv.
Alright, I will look into it tomorrow. In the meantime you could upgrade libuv so PYTHON will be understood :)
from pyuv.
Done in 2e5be78, all yours ;-)
from pyuv.
Still not working for me (Python 3.3, with PYTHON set to the directory of a Python 2.7 interpreter)
PS 09:23 D:\Work\Scratch\pyuv
>$env:PYTHON="D:\Apps\Python27"
PS 09:24 D:\Work\Scratch\pyuv
>D:\Apps\Python33\python.exe .\setup.py build
running build
running build_ext
libuv needs to be compiled.
Building libuv...
building 'pyuv' extension
creating build
creating build\temp.win-amd64-3.3
creating build\temp.win-amd64-3.3\Release
creating build\temp.win-amd64-3.3\Release\src
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DMODULE_VERSION=0.9.7.dev -DLIBUV_REVISION=85124d7 -ID:\Apps\Python33\include
-ID:\Apps\Python33\include -Ideps\libuv\include /Tcsrc/pyuv.c /Fobuild\temp.win-amd64-3.3\Release\src/pyuv.obj
pyuv.c
d:\work\scratch\pyuv\src\pyuv.h(536) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
d:\work\scratch\pyuv\src\pyuv.h(565) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'ULONG', possible loss of data
d:\work\scratch\pyuv\src\stream.c(336) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data
d:\work\scratch\pyuv\src\pipe.c(373) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data
d:\work\scratch\pyuv\src\udp.c(282) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data
d:\work\scratch\pyuv\src\fs.c(950) : warning C4244: '=' : conversion from 'ssize_t' to 'int', possible loss of data
d:\work\scratch\pyuv\src\process.c(345) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
d:\work\scratch\pyuv\src\util.c(247) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
creating build\lib.win-amd64-3.3
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:D:\Apps\Python33\libs /LIBPATH:D:\Apps\Python33\PCbuild\amd64 advapi32.lib iphlpapi.lib psapi.lib ws2_32.lib /EXPORT:PyInit_pyuv build\temp.win-amd64-3.3\Release\src/pyuv.obj deps\libuv\Release\lib\libuv.lib /OUT:build\lib.win-amd64-3.3\pyuv.pyd /IMPLIB:build\temp.win-amd64-3.3\Release\src\pyuv.lib /MANIFESTFILE:build\temp.win-amd64-3.3\Release\src\pyuv.pyd.manifest /NODEFAULTLIB:libcmt /LTCG
LINK : fatal error LNK1181: cannot open input file 'deps\libuv\Release\lib\libuv.lib'
error: command '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe"' failed with exit status 1181
There is no Release folder in deps/libuv. And there's no build log for libuv anywhere that I can see :-(
from pyuv.
@pfmoore PYTHON must point to the executable.
from pyuv.
@pfmoore And make a rm -rf deps
. If gyp fails the libuv directory isn't in a clean state anymore.
from pyuv.
@pfmoore If both does not work execute vcbuild.bat
directly to debug it.
from pyuv.
Builds OK now, but link errors:
>D:\Apps\Python33\python.exe .\setup.py build
running build
running build_ext
Downloading libuv...
Building libuv...
building 'pyuv' extension
creating build
creating build\temp.win-amd64-3.3
creating build\temp.win-amd64-3.3\Release
creating build\temp.win-amd64-3.3\Release\src
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DMODULE_VERSION=0.9.7.dev -DLIBUV_REVISION=85124d7 -ID:\Apps\Python33\include
-ID:\Apps\Python33\include -Ideps\libuv\include /Tcsrc/pyuv.c /Fobuild\temp.win-amd64-3.3\Release\src/pyuv.obj
pyuv.c
d:\work\scratch\pyuv\src\pyuv.h(536) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
d:\work\scratch\pyuv\src\pyuv.h(565) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'ULONG', possible loss of data
d:\work\scratch\pyuv\src\stream.c(336) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data
d:\work\scratch\pyuv\src\pipe.c(373) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data
d:\work\scratch\pyuv\src\udp.c(282) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data
d:\work\scratch\pyuv\src\fs.c(950) : warning C4244: '=' : conversion from 'ssize_t' to 'int', possible loss of data
d:\work\scratch\pyuv\src\process.c(345) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
d:\work\scratch\pyuv\src\util.c(247) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
creating build\lib.win-amd64-3.3
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:D:\Apps\Python33\libs /LIBPATH:D:\Apps\Python33\PCbuild\amd64 advapi32.lib iphlpapi.lib psapi.lib ws2_32.lib /EXPORT:PyInit_pyuv build\temp.win-amd64-3.3\Release\src/pyuv.obj deps\libuv\Release\lib\libuv.lib /OUT:build\lib.win-amd64-3.3\pyuv.pyd /IMPLIB:build\temp.win-amd64-3.3\Release\src\pyuv.lib /MANIFESTFILE:build\temp.win-amd64-3.3\Release\src\pyuv.pyd.manifest /NODEFAULTLIB:libcmt /LTCG
pyuv.obj : warning LNK4197: export 'PyInit_pyuv' specified multiple times; using first specification
Creating library build\temp.win-amd64-3.3\Release\src\pyuv.lib and object build\temp.win-amd64-3.3\Release\src\pyuv.exp
pyuv.obj : error LNK2001: unresolved external symbol uv_inet_pton
pyuv.obj : error LNK2001: unresolved external symbol uv_strerror
pyuv.obj : error LNK2001: unresolved external symbol uv_loop_new
pyuv.obj : error LNK2001: unresolved external symbol uv_default_loop
pyuv.obj : error LNK2001: unresolved external symbol uv_run
pyuv.obj : error LNK2001: unresolved external symbol uv_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_now
pyuv.obj : error LNK2001: unresolved external symbol uv_update_time
pyuv.obj : error LNK2001: unresolved external symbol uv_walk
pyuv.obj : error LNK2001: unresolved external symbol uv_backend_fd
pyuv.obj : error LNK2001: unresolved external symbol uv_backend_timeout
pyuv.obj : error LNK2001: unresolved external symbol uv_last_error
pyuv.obj : error LNK2001: unresolved external symbol uv_queue_work
pyuv.obj : error LNK2001: unresolved external symbol uv_loop_delete
pyuv.obj : error LNK2001: unresolved external symbol uv_ref
pyuv.obj : error LNK2001: unresolved external symbol uv_is_closing
pyuv.obj : error LNK2001: unresolved external symbol uv_unref
pyuv.obj : error LNK2001: unresolved external symbol uv_close
pyuv.obj : error LNK2001: unresolved external symbol uv_is_active
pyuv.obj : error LNK2001: unresolved external symbol uv_cancel
pyuv.obj : error LNK2001: unresolved external symbol uv_async_send
pyuv.obj : error LNK2001: unresolved external symbol uv_async_init
pyuv.obj : error LNK2001: unresolved external symbol uv_timer_start
pyuv.obj : error LNK2001: unresolved external symbol uv_timer_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_timer_again
pyuv.obj : error LNK2001: unresolved external symbol uv_timer_get_repeat
pyuv.obj : error LNK2001: unresolved external symbol uv_timer_set_repeat
pyuv.obj : error LNK2001: unresolved external symbol uv_timer_init
pyuv.obj : error LNK2001: unresolved external symbol uv_prepare_start
pyuv.obj : error LNK2001: unresolved external symbol uv_prepare_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_prepare_init
pyuv.obj : error LNK2001: unresolved external symbol uv_idle_start
pyuv.obj : error LNK2001: unresolved external symbol uv_idle_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_idle_init
pyuv.obj : error LNK2001: unresolved external symbol uv_check_start
pyuv.obj : error LNK2001: unresolved external symbol uv_check_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_check_init
pyuv.obj : error LNK2001: unresolved external symbol uv_signal_start
pyuv.obj : error LNK2001: unresolved external symbol uv_signal_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_signal_init
pyuv.obj : error LNK2001: unresolved external symbol uv_buf_init
pyuv.obj : error LNK2001: unresolved external symbol uv_read_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_shutdown
pyuv.obj : error LNK2001: unresolved external symbol uv_read_start
pyuv.obj : error LNK2001: unresolved external symbol uv_write
pyuv.obj : error LNK2001: unresolved external symbol uv_write2
pyuv.obj : error LNK2001: unresolved external symbol uv_is_readable
pyuv.obj : error LNK2001: unresolved external symbol uv_is_writable
pyuv.obj : error LNK2001: unresolved external symbol uv_pipe_bind
pyuv.obj : error LNK2001: unresolved external symbol uv_listen
pyuv.obj : error LNK2001: unresolved external symbol uv_accept
pyuv.obj : error LNK2001: unresolved external symbol uv_pipe_connect
pyuv.obj : error LNK2001: unresolved external symbol uv_pipe_open
pyuv.obj : error LNK2001: unresolved external symbol uv_pipe_pending_instances
pyuv.obj : error LNK2001: unresolved external symbol uv_read2_start
pyuv.obj : error LNK2001: unresolved external symbol uv_pipe_init
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_bind6
pyuv.obj : error LNK2001: unresolved external symbol uv_ip6_addr
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_bind
pyuv.obj : error LNK2001: unresolved external symbol uv_ip4_addr
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_connect6
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_connect
pyuv.obj : error LNK2001: unresolved external symbol uv_ip6_name
pyuv.obj : error LNK2001: unresolved external symbol uv_ip4_name
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_getsockname
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_getpeername
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_nodelay
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_keepalive
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_simultaneous_accepts
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_open
pyuv.obj : error LNK2001: unresolved external symbol uv_tcp_init
pyuv.obj : error LNK2001: unresolved external symbol uv_tty_set_mode
pyuv.obj : error LNK2001: unresolved external symbol uv_tty_reset_mode
pyuv.obj : error LNK2001: unresolved external symbol uv_tty_get_winsize
pyuv.obj : error LNK2001: unresolved external symbol uv_tty_init
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_bind6
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_bind
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_recv_start
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_recv_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_send6
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_send
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_set_membership
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_getsockname
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_set_multicast_ttl
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_set_broadcast
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_set_multicast_loop
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_set_ttl
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_open
pyuv.obj : error LNK2001: unresolved external symbol uv_udp_init
pyuv.obj : error LNK2001: unresolved external symbol uv_poll_start
pyuv.obj : error LNK2001: unresolved external symbol uv_poll_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_poll_init_socket
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_req_cleanup
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_lstat
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_stat
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_fstat
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_unlink
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_mkdir
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_rmdir
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_rename
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_chmod
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_fchmod
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_link
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_symlink
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_readlink
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_chown
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_fchown
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_open
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_close
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_read
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_write
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_fsync
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_fdatasync
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_ftruncate
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_readdir
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_sendfile
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_utime
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_futime
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_event_init
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_poll_start
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_poll_stop
pyuv.obj : error LNK2001: unresolved external symbol uv_fs_poll_init
pyuv.obj : error LNK2001: unresolved external symbol uv_spawn
pyuv.obj : error LNK2001: unresolved external symbol uv_process_kill
pyuv.obj : error LNK2001: unresolved external symbol uv_disable_stdio_inheritance
pyuv.obj : error LNK2001: unresolved external symbol uv_hrtime
pyuv.obj : error LNK2001: unresolved external symbol uv_get_free_memory
pyuv.obj : error LNK2001: unresolved external symbol uv_get_total_memory
pyuv.obj : error LNK2001: unresolved external symbol uv_loadavg
pyuv.obj : error LNK2001: unresolved external symbol uv_uptime
pyuv.obj : error LNK2001: unresolved external symbol uv_resident_set_memory
pyuv.obj : error LNK2001: unresolved external symbol uv_free_interface_addresses
pyuv.obj : error LNK2001: unresolved external symbol uv_interface_addresses
pyuv.obj : error LNK2001: unresolved external symbol uv_free_cpu_info
pyuv.obj : error LNK2001: unresolved external symbol uv_cpu_info
pyuv.obj : error LNK2001: unresolved external symbol uv_freeaddrinfo
pyuv.obj : error LNK2001: unresolved external symbol uv_getaddrinfo
pyuv.obj : error LNK2001: unresolved external symbol uv_barrier_wait
pyuv.obj : error LNK2001: unresolved external symbol uv_barrier_init
pyuv.obj : error LNK2001: unresolved external symbol uv_barrier_destroy
pyuv.obj : error LNK2001: unresolved external symbol uv_mutex_lock
pyuv.obj : error LNK2001: unresolved external symbol uv_mutex_unlock
pyuv.obj : error LNK2001: unresolved external symbol uv_mutex_trylock
pyuv.obj : error LNK2001: unresolved external symbol uv_mutex_init
pyuv.obj : error LNK2001: unresolved external symbol uv_mutex_destroy
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_rdlock
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_rdunlock
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_tryrdlock
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_wrlock
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_wrunlock
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_trywrlock
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_init
pyuv.obj : error LNK2001: unresolved external symbol uv_rwlock_destroy
pyuv.obj : error LNK2001: unresolved external symbol uv_cond_signal
pyuv.obj : error LNK2001: unresolved external symbol uv_cond_broadcast
pyuv.obj : error LNK2001: unresolved external symbol uv_cond_wait
pyuv.obj : error LNK2001: unresolved external symbol uv_cond_timedwait
pyuv.obj : error LNK2001: unresolved external symbol uv_cond_init
pyuv.obj : error LNK2001: unresolved external symbol uv_cond_destroy
pyuv.obj : error LNK2001: unresolved external symbol uv_sem_post
pyuv.obj : error LNK2001: unresolved external symbol uv_sem_wait
pyuv.obj : error LNK2001: unresolved external symbol uv_sem_trywait
pyuv.obj : error LNK2001: unresolved external symbol uv_sem_init
pyuv.obj : error LNK2001: unresolved external symbol uv_sem_destroy
build\lib.win-amd64-3.3\pyuv.pyd : fatal error LNK1120: 164 unresolved externals
error: command '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe"' failed with exit status 1120
Odd as libuv.lib is in the link. Could it be because I'm on 64 bit Windows? Or because Python 3.3 uses VS10? These seem unlikely, but I can't see anything obvious...
from pyuv.
Are you using a 64bit Python?
from pyuv.
Yes.
from pyuv.
Heh, this is a known issue. I plan to solve it tonight. Can you test this:
Edit setup_libuv.py and replace this line
https://github.com/saghul/pyuv/blob/master/setup_libuv.py#L162
with:
exec_process(['cmd.exe', '/C', 'vcbuild.bat', 'x64', 'release'], cwd=self.libuv_dir, env=env, shell=True)
from pyuv.
@saghul Solved :)
from pyuv.
Builds and works fine now. Many thanks!
from pyuv.
Glad to hear! Thanks guys!
from pyuv.
There is still one issue: We don't get any error if vcbuild.bat fails. This should be fixed with: joyent/libuv#727
from pyuv.
No problem, I'll bump the revision on pyuv once it's merged.
from pyuv.
@pfmoore Could you upload a 64bit build of pyuv 0.9.7 (for Python 3) somewhere? I can't build 64bit because I have only VS Express, but I really would like to test it. Thanks a lot 🍰
from pyuv.
Just tried and it broke with the following:
>python .\setup.py bdist_wininst
running bdist_wininst
running build
running build_ext
Downloading libuv...
Building libuv...
error: Got return value 1 while executing "cmd.exe /C vcbuild.bat x64 release", stderr output was:
Checking out files: 100% (1084/1084), done.
Running vcbuild.bat manually gets:
Setting environment for using Microsoft Visual Studio 2010 x64 tools.
['-Dtarget_arch=x64', '-Dlibrary=static_library', '.\\uv.gyp', '-I', '.\\common.gypi', '--depth=.', '-Dhost_arch=AMD64', '-Dcomponent=static_library']
Project files generated.
libuv.vcxproj -> C:\Work\Projects\pyuv\deps\libuv\Release\lib\libuv.lib
libuv.lib(util.obj) : error LNK2001: unresolved external symbol __imp_RegQueryValueExW [C:\Work\Projects\pyuv\deps\libuv\run-benchmarks.vcxproj]
libuv.lib(util.obj) : error LNK2001: unresolved external symbol __imp_RegOpenKeyExW [C:\Work\Projects\pyuv\deps\libuv\run-benchmarks.vcxproj]
libuv.lib(util.obj) : error LNK2001: unresolved external symbol __imp_RegCloseKey [C:\Work\Projects\pyuv\deps\libuv\run-benchmarks.vcxproj]
C:\Work\Projects\pyuv\deps\libuv\Release\run-benchmarks.exe : fatal error LNK1120: 3 unresolved externals [C:\Work\Projects\pyuv\deps\libuv\run-benchmarks.vcxp
roj]
test-spawn.obj : error LNK2001: unresolved external symbol __imp_CommandLineToArgvW [C:\Work\Projects\pyuv\deps\libuv\run-tests.vcxproj]
libuv.lib(util.obj) : error LNK2001: unresolved external symbol __imp_RegQueryValueExW [C:\Work\Projects\pyuv\deps\libuv\run-tests.vcxproj]
libuv.lib(util.obj) : error LNK2001: unresolved external symbol __imp_RegOpenKeyExW [C:\Work\Projects\pyuv\deps\libuv\run-tests.vcxproj]
libuv.lib(util.obj) : error LNK2001: unresolved external symbol __imp_RegCloseKey [C:\Work\Projects\pyuv\deps\libuv\run-tests.vcxproj]
C:\Work\Projects\pyuv\deps\libuv\Release\run-tests.exe : fatal error LNK1120: 4 unresolved externals [C:\Work\Projects\pyuv\deps\libuv\run-tests.vcxproj]
Hope this helps - sorry, but I don't have any time to diagnose further.
from pyuv.
@pfmoore a libuv revision bump fixes this. I'll bump it later today.
from pyuv.
@pfmoore Running it a second time should succeed, though. The linked libuv revision has only some build issues with tests.
from pyuv.
I meant python setup.py ...
:)
from pyuv.
OK, worked now. I have a wininst exe for Python 3.3, 64-bit. I don't have any public space to upload to, can you suggest somewhere I can put it?
from pyuv.
You could create an issue with attachment here: https://code.google.com/p/pyuv/issues/list
Or just push it into a GitHub repo/branch if you don't have a Google account (you can delete it after I downloaded it)
Thanks for your effort 👍
from pyuv.
Uploaded as issue 1 to google code.
from pyuv.
Thanks 👍
from pyuv.
Related Issues (20)
- Test errors on OSX HOT 1
- pip installation failure on Windows 10 HOT 1
- preexec_fn on Process.spawn HOT 1
- tcp readed data has other bytes than expected HOT 4
- error AttributeError: 'pyuv._cpyuv.Signal' object has no attribute 'unref' HOT 1
- AttributeError: 'pyuv._cpyuv.Prepare' object has no attribute 'unref' HOT 1
- Tasks scheduled via loop.queue_work() HOT 2
- how to bind port both ipv4 and ipv6 HOT 4
- pyuv UDP multi-NIC, Send A-IP? and Recv B-IP? HOT 6
- Pip install breaking in MacOS HOT 8
- Documentation points to old libuv link
- install error on Mac with Homebrew python 3.8.3 HOT 2
- try_write on Pipe gives 'resource temporarily unavailable'
- No wheels for py >= 3.7 HOT 2
- Use `Py_SET_REFCNT(self, refcnt);` instead of `Py_REFCNT(self) = refcnt;`. HOT 11
- pyuv doesn't compile with Python 3.10 HOT 3
- An error in Poll handles example HOT 3
- Push the new versions to PyPI HOT 5
- src/handle.c:17:21: error: lvalue required as left operand of assignment HOT 1
- LoopRunTest.test_stop fails with libuv 1.45.0+
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyuv.