I was going through this plotly.rs tutorial on getting started with using plotly in rust and was trying to get the kaleido feature working. However, it seems to be breaking. Even the simple statement
plot.save("scatter", ImageFormat::PNG, 1024, 680, 1.0);
fails with the following rust backtrace (I'm on a Macbook).
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: NotPresent', /Users/devil/.cargo/registry/src/github.com-1ecc6299db9ec823/plotly_kaleido-0.2.0/src/lib.rs:88:66
stack backtrace:
0: rust_begin_unwind
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:517:5
1: core::panicking::panic_fmt
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/panicking.rs:100:14
2: core::result::unwrap_failed
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/result.rs:1616:5
3: plotly_kaleido::Kaleido::new
4: plotly::plot::Plot::save
5: test_plotly::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
The plotly.rs repo says that the kaleido needs further configuration, but I dont seem to find what I need to fix to get it working.
Based on the location where the error occurs it seems as if the cargo environment variable CARGO_MANIFEST_DIR is not set on your system.
This may happen if you ran your application directly using rustc instead of cargo run.
Related
The issue I'm having are regarding a copy-pasted flo_draw example program. I am using vscode and the rust-anylizer extension. It tells me failed to run build scripts, check server logs for more information apon copying the code in. I don't know how to check these or what they are. Using cargo run from the terminal yields no better results.
I tried to copy in the code below:
// src.main.rs
use flo_draw::*;
use flo_draw::canvas::*;
fn main() {
with_2d_graphics(|| {
let canvas = create_canvas_window("Hello, world");
});
}
$ cargo run
Compiling futures v0.3.25
Compiling semver v0.11.0
Compiling flo_render_gl_offscreen v0.3.0
Compiling allsorts v0.5.1
Compiling winit v0.24.0
error: failed to run custom build command for `flo_render_gl_offscreen v0.3.0`
Caused by:
process didn't exit successfully: `/<path to program>/target/debug/build/flo_render_gl_offscreen-9d539a79f1cb257c/build-script-build` (exit status: 101)
\--- stderr
thread 'main' panicked at 'Unable to find libclang: "couldn't find any valid shared libraries matching: \['libclang.so', 'libclang-*.so', 'libclang.so.*', 'libclang-*.so.*'\], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: \[\])"', /<path to home>/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.54.0/src/lib.rs:1959:31
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
flo_draw, or, more specifically, one of its dependencies, links to the external C library and therefore have to generate the matching API. This is done using bindgen, which requires clang to be installed in your system.
Installation instructions from the linked page:
Debian-based Linuxes
# apt install llvm-dev libclang-dev clang
Ubuntu 18.04 provides the necessary packages directly.
Arch
# pacman -S clang
Fedora
# dnf install clang-devel
My Rust crate wont load when compiling/running my file
I have reinstalled Rust several times, continuously restarting and checking the Path variables (as well as the current version installed)
I have restarted my system various times, and I am also experiencing this issue on my desktop PC at home; I am currently running Windows 11 as of the time of this post
I have added several other "dependencies" to my Cargo.toml file to no avail, they still refuse to work and I receive the same errors each time I try to utilise it
I have seen that some features of the Rust crate importation system have been deprecated; such as the "extern crate {crate_name}", I still receive these messages from time to time even though I am using the most up to date "rustup" version
I have consulted the Rust discord server and the official Rust language forums with the same issue
I have installed "git" on my system as that appeared to be an issue when adding my desired crates to the Cargo.toml
I expected to be able to use these crates without any hassle after solving my issue on importing these crates within the toml file, but I am still with nothing to show for that expectation.
Below is the code I have fully tested and ran
I have researched the documentation for importing crates with dependencies in Rust,
my directory looks like this: file directory
I have added the "ncurses" to my MinGW package manager, as requested by the "cursive" page on "crates.io"
I also gain the error from the "rust-analyser" extension in VSC
analyser error message
I have the current version of Rust installed,
rustup -V
rustup 1.25.1 (bb60b1e89 2022-07-12)
My File Directory looks like this:
-->Application
---->src
------>main.rs
---->target
---->.gitignore
---->Cargo.lock
---->Cargo.toml
My issue occurs when I try the command "cargo build" within the VSC terminal- which to my knowledge as I am in the bin file, it should run just fine.
I am thrown this error,
c1: fatal error C1083: Cannot open source file: 'C:\Users\dean7\Desktop\main.rs\crates\cratess\target\debug\build\ncurses-
4eee2f93b40e2da2\out\chtype_size.c': Permission denied
--- stderr
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
thread 'main' panicked at 'assertion failed: command.status().expect(\"compilation failed\").success()', C:\Users\{%USERPROFILE%}\.cargo\registry\src\github.com-1ecc6299db9ec823\ncurses-5.101.0\build.rs:105:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
My "Cargo.toml" file looks like this,
[package]
name = "cratess"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
cursive = "0.20.0"
My "main.rs" file looks like this,
use cursive::{Cursive, CursiveExt};
fn main() {
let mut app = Cursive::new();
app.run();
println!("Hello, world!");
}
My error when I run the command, run my code is this,
error[E0432]: unresolved import `cursive`
--> tempCodeRunnerFile.rs:1:5
|
1 | use cursive::{Cursive, CursiveExt};
| ^^^^^^^ maybe a missing crate `cursive`?
|
= help: consider adding `extern crate cursive` to use the `cursive` crate
error: aborting due to previous error
For more information about this error, try `rustc --explain E0432`.
An additional warning is given when I run "cargo build" in my terminal (NOT IN CMD),
warning: build failed, waiting for other jobs to finish...
Title says it all - I am attempting to run a very basic Rust program using hyper_wasi, and everything compiles seemingly ok using cargo wasi run. Unfortunately when it actually executes, I get:
Error: failed to run main module `target/wasm32-wasi/debug/<my project name here>.wasm`
Caused by:
0: failed to instantiate "target/wasm32-wasi/debug/<my project name here>.wasm"
1: unknown import: `wasi_snapshot_preview1::sock_setsockopt` has not been defined
Execution environment is a rather older Mac (2013 MBP with Big Sur), clang version:
Homebrew clang version 15.0.3
Target: x86_64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
If anyone can point me at what I might be missing I'd appreciate it.
I’m trying to track which keys are typed in WSL using the device_query crate. I’ve read the crate’s documentation, added device_query = "0.2.4" to my Cargo.toml file and installed the X11 dependency (sudo apt install libx11-dev).
In my src/main.rs file, I use the crate as intended:
use device_query::{DeviceQuery, DeviceState, MouseState, Keycode};
fn main() {
let device_state = DeviceState::new();
let mouse: MouseState = device_state.get_mouse();
println!("Current Mouse Coordinates: {:?}", mouse.coords);
let keys: Vec<Keycode> = device_state.get_keys();
println!("Is A pressed? {}", keys.contains(&Keycode::A));
}
However, when I run cargo build, I get a 101 exit error:
Updating crates.io index
Compiling x11 v2.18.2
error: failed to run custom build command for `x11 v2.18.2`
Caused by:
process didn't exit successfully: `/home/egerou/Coding/Rust/Wow/target/debug/build/x11-5b031a8b4760d83b/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Command { command: "\"pkg-config\" \"--libs\" \"--cflags\" \"x11\" \"x11 >= 1.4.99.1\"", cause: Os { code: 2, kind: NotFound, message: "No such file or directory" } }', /home/egerou/.cargo/registry/src/github.com-1ecc6299db9ec823/x11-2.18.2/build.rs:36:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
When I read the error, I feel like X11 might not be installed correctly, but if I compile without the device_query = "0.2.4" crate but still the X11 crate (x11 = "2.18.2"), cargo build works.
The error also says a file is missing. Maybe since I’m on WSL, the file isn’t at the correct/expected location.
I’m also using the indexmap = "1.3.2" and rand = "0.5.5" crates. I don’t think they would interfere with the device_query = "0.2.4" crate.
How to build a project that uses the device_query = "0.2.4" crate?
Your error message states (reformatted to make it more readable):
Command {
command: "pkg-config" "--libs" "--cflags" "x11" "x11 >= 1.4.99.1",
cause: Os {
code: 2,
kind: NotFound,
message: "No such file or directory",
}
}
This means that it tried to run the command "pkg-config" "--libs" "--cflags" "x11" "x11 >= 1.4.99.1" but it failed. It failed because the binary pkg-config could not be found.
If you were to run this command in the terminal, presumably you'd see the same error. If so, you need to install pkg-config. If not, then pkg-config might not be in your PATH or is otherwise unavailable to your Rust program. You'll need to investigate where it's installed and why that installation path isn't available to the program.
I want to make a GUI application using Rust on Windows 10 and I found the qml crate which looks nice.
I added in my Cargo.toml file this dependency: qml = "0.0.9", but when I run cargo build, I get this error:
> cargo build
Compiling qml v0.0.9
error: failed to run custom build command for `qml v0.0.9`
process didn't exit successfully: `project\target\debug\build\qml-018515e4bf91189d\build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'failed to execute process: The specified file cannot be found. (os error 2)', user\.cargo\registry\src\github.com-1ecc6299db9ec823\qml-0.0.9\build.rs:28:33
note: Run with `RUST_BACKTRACE=1` for a backtrace.
I looked at the build.rs file and I saw this line:
fs::copy(Path::new(&manifest_dir).join("build_lib.sh"), Path::new(&out_dir).join("build_lib.sh")).unwrap();
Maybe I don't have the rights to do that on my account, so I tried to run it as admin, but cargo and rustc are installed in my user folder.
When I change the path, I get the error error: no default toolchain configured.
QML 0.0.9's build script doesn't support Windows.
It appears that support for Windows was added in 80ccad26, which seemingly hasn't been released yet.
You will need to use the version from the git repository instead:
[dependencies]
qml = { git = "https://github.com/White-Oak/qml-rust" }